Compartir a través de


Propiedad Shape.Cells (Visio)

Devuelve un objeto Cell que representa una celda ShapeSheet. Solo lectura.

Sintaxis

expresión. Cells (localeSpecificCellName)

Expresión Variable que representa un objeto Shape .

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
localeSpecificCellName Obligatorio String Nombre de una celda ShapeSheet.

Valor devuelto

Cell

Comentarios

Cells ("somestring") genera una excepción "Final inesperado del archivo" si "somestring" no asigna un nombre a una celda real. Utilice la propiedad CellExists para determinar si existe una celda con el nombre "somestring".

Las celdas de las secciones Celdas definidas por el usuario y Datos de formas de una forma pertenecen a las filas cuyos nombres los ha asignado el usuario o un programa. Use la propiedad Cells para acceder a las celdas de filas con nombre.

Por ejemplo, si el nombre de una fila de la sección Celdas definidas por el usuario de una forma es "Row_1", puede utilizar esta instrucción para tener acceso a la primera celda de esta fila (la celda de la columna cero, que contiene el nombre de la fila):

vsoCell = vsoShape.Cells("User.Row_1")

Use esta instrucción para acceder a la celda del símbolo del sistema en Row_1:

vsoCell = vsoShape.Cells("User.Row_1.Prompt")

A continuación, suponga que Row_1 se encuentra en la sección Datos de formas en lugar de la sección Celdas definidas por el usuario. Use esta instrucción para obtener acceso a la primera celda de esta fila (la celda de la columna cero, que contiene el nombre de la fila):

vsoCell = vsoShape.Cells("Prop.Row_1")

Use esta instrucción para acceder a otras celdas de la fila:

vsoCell = vsoShape.Cells("Prop.Row_1.xxx")

donde xxx es una de estas celdas: Label, Prompt, SortKey, Type, Format, Invisible o Ask.

Nota:

A partir de Microsoft Visio 2000, puede usar nombres locales y universales para hacer referencia a formas, patrones, documentos, páginas, filas, complementos, celdas, hipervínculos, estilos, fuentes, accesos directos maestros, objetos de interfaz de usuario y capas de Visio. Cuando un usuario asigna un nombre a una forma, por ejemplo, el usuario especifica un nombre local. A partir de Microsoft Office Visio 2003, la hoja de cálculo ShapeSheet solo muestra nombres universales en fórmulas y valores de celda. (En versiones anteriores, los nombres universales no eran visibles en la interfaz de usuario).

Como programador, puede usar nombres universales en un programa cuando no desee cambiar un nombre cada vez que localice una solución. Para obtener un objeto Cell mediante el nombre local de la celda, utilice la propiedad Cells. Para obtener un objeto Cell mediante el nombre universal de la celda, utilice la propiedad CellsU.

Ejemplo:

Esta macro de Microsoft Visual Basic para Aplicaciones (VBA) muestra cómo utilizar la propiedad Cells para obtener una celda ShapeSheet determinada a partir de su nombre. Dibuja un rectángulo en una página y curva las líneas de dicho rectángulo convirtiendo las líneas de la forma en arcos. Para ello, cambia los tipos de las filas de ShapeSheet para cada lado del rectángulo de LineTo a ArcTo y, a continuación, cambia los valores de las celdas X e Y en cada una de estas filas.

 
Public Sub Cells_Example() 
 
 Dim vsoPage As Visio.Page 
 Dim vsoShape As Visio.Shape 
 Dim vsoCell As Visio.Cell 
 Dim strBowCell As String 
 Dim strBowFormula As String 
 Dim intCounter As Integer 
 
 'Set the value of the strBowCell string. 
 strBowCell = "Scratch.X1" 
 
 'Set the value of the strBowFormula string. 
 strBowFormula = "=Min(Width, Height) / 5" 
 
 Set vsoPage = ActivePage 
 
 'If there isn't an active page, set vsoPage 
 'to the first page of the active document. 
 If vsoPage Is Nothing Then 
 Set vsoPage = ActiveDocument.Pages(1) 
 End If 
 
 'Draw a rectangle on the active page. 
 Set vsoShape = vsoPage.DrawRectangle(1, 5, 5, 1) 
 
 'Add a scratch section and add a row to the scratch section. 
 vsoShape.AddSection visSectionScratch 
 vsoShape.AddRow visSectionScratch, visRowScratch, 0 
 
 'Set vsoCell to the Scratch.X1 cell and set its formula. 
 Set vsoCell = vsoShape.Cells(strBowCell) 
 vsoCell.Formula = strBowFormula 
 
 'Bow in or curve the rectangle's lines by changing 
 'each row type from LineTo to ArcTo and entering the bow value. 
 For intCounter = 1 To 4 
 vsoShape.RowType(visSectionFirstComponent, visRowVertex + intCounter) = visTagArcTo 
 Set vsoCell = vsoShape.CellsSRC(visSectionFirstComponent, visRowVertex + intCounter, 2) 
 vsoCell.Formula = "-" & strBowCell 
 Next intCounter 
 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.