Visual Basic para Aplicaciones - [VBA] [Visio]Como establecer propiedades de SHAPES

Life is soft - evento anual de software empresarial
 
Vista:

[VBA] [Visio]Como establecer propiedades de SHAPES

Publicado por Cyrano (2 intervenciones) el 30/12/2004 08:47:02
El ejemplo concreto es una hoja en Visio donde quiero establecer las propiedades de las formas (SHAPES) según la información que recupero de una fuente de datos OBDC enlazada a Oracle.

La información de una forma (SHAPE) está organizada de la siguiente forma. Existen varias secciones según el tipo (la que nos interesea es la de Custom Properties). Cada sección posee una serie de filas (Rows). Y a su vez cada fila se divide en celdas (Cells), donde cada celda guarda un atributo de la propiedad (formato, tipo, nombre, etiqueta, etc..)

Según la ayuda de Visio y la propia página de MSDN se utiliza la función RESULT para recuperar o establecer el valor de estas celdas. Sin embargo esto es falso ya que si se intenta establecer un valor con RESULT en el caso de una cadena (STRING) siempre da error.

Para establecer el valor (en el caso de un STRING) se debe utilizar la función fórmula y un caracter especial según el siguiente ejemplo (visSectionProp es la sección de propiedades, 0 indica que es la primera propiedad o fila):

Set celda = shpObj.CellsSRC(visSectionProp, 0, visCustPropsLabel)
celda.Formula = "=" & Chr(34) & <ETIQUETA> & Chr(34)
Set celda = shpObj.CellsSRC(visSectionProp, 0, visCustPropsType)
celda.Result("") = <TIPO>
Set celda = shpObj.CellsSRC(visSectionProp, 0, visCustPropsFormat)
celda.Formula = "=" & Chr(34) & <FORMATO> & Chr(34)
Set celda = shpObj.CellsSRC(visSectionProp, 0, visCustPropsValue)
celda.Formula = "=" & Chr(34) & <VALUE> & Chr(34)

En fin espero que está información ayude a alguien ya que a mi me costó sudores encontrarla (que hariamos sin San Google) finalmente en una página personal de Geocities.

NOTA: Enlace a la página donde encontré la información
[url]http://www.geocities.com/cjmaccio/visio.htm[
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder