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

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

Синтаксис

выражение. Ячейки (localeSpecificCellName)

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

Параметры

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

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

Cell

Примечания

Ячейки ("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, для обозначения фигур, образцов, документов, страниц, строк, надстроек, ячеек, гиперссылок, стилей, шрифтов, master ярлыков, объектов пользовательского интерфейса и слоев можно использовать как локальные, так и универсальные имена. Например, когда пользователь дает имя фигуре, он указывает локальное имя. Начиная с Microsoft Office Visio 2003, в формулах и значениях ячеек отображается только таблица свойств фигур. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)

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

Пример

В этом макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать свойство "Ячейки" для получения определенной ячейки таблицы свойств фигур по ее имени. Он рисует прямоугольник на странице и изгибает или изгибает линии прямоугольника, преобразуя линии фигуры в дуги. Это достигается путем изменения типов строк ShapeSheet для каждой стороны прямоугольника с 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 и обратная связь.