Свойство Shape.Cells (Visio)

Возвращает объект Cell , представляющий ячейку Таблицы фигур. Только для чтения.

Синтаксис

expression. Cells (localeSpecificCellName)

Выражение Переменная, представляющая объект Shape .

Параметры

Имя Обязательный или необязательный Тип данных Описание
localeSpecificCellName Обязательный String Имя ячейки таблицы фигур.

Возвращаемое значение

Cell

Замечания

Cells ("somestring") вызывает исключение "Непредвиденный конец файла", если "somestring" не называет фактическую ячейку. Используйте свойство CellExists , чтобы определить, существует ли ячейка с именем somestring.

Ячейки в разделах User-Defined ячеек фигуры и данных фигуры относятся к строкам, имена которых назначены пользователем или программой. Используйте свойство Cells для доступа к ячейкам в именованных строках.

Например, если "Row_1" — это имя строки в разделе User-Defined ячеек фигуры, можно использовать эту инструкцию для доступа к первой ячейке в этой строке (ячейке в нулевом столбце, содержащей имя строки):

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

Используйте эту инструкцию для доступа к ячейке запроса в Row_1:

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

Затем предположим, что Row_1 находится в разделе Данные фигуры, а не в разделе Определяемые пользователем ячейки. Используйте эту инструкцию для доступа к первой ячейке в этой строке (ячейка в нулевом столбце, которая содержит имя строки):

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

Используйте эту инструкцию для доступа к другим ячейкам в строке:

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

где xxx — это одна из следующих ячеек: Label, Prompt, SortKey, Type, Format, Invisible или Ask.

Примечание.

Начиная с Microsoft Visio 2000, вы можете использовать локальные и универсальные имена для ссылки на фигуры Visio, образцы, документы, страницы, строки, надстройки, ячейки, гиперссылки, стили, шрифты, основные сочетания клавиш, объекты пользовательского интерфейса и слои. Например, когда пользователь присваивает имя фигуре, пользователь указывает локальное имя. Начиная с Microsoft Office Visio 2003 электронная таблица shapesheet отображает только универсальные имена в формулах и значениях ячеек. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)

Как разработчик, вы можете использовать универсальные имена в программе, если вы не хотите изменять имя каждый раз, когда решение локализуется. Используйте свойство Cells , чтобы получить объект Cell с помощью локального имени ячейки. Используйте свойство CellsU , чтобы получить объект Cell с помощью универсального имени ячейки.

Пример

В этом макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать свойство Cells для получения определенной ячейки Таблицы фигур по ее имени. Он рисует прямоугольник на странице и смычки или изгибает линии прямоугольника, изменяя линии фигуры на дуги. Это достигается путем изменения типов строк таблицы фигур для каждой стороны прямоугольника с LineTo на ArcTo, а затем путем изменения значений ячеек X и Y в каждой из этих строк.

 
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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.