Поделиться через


Свойство Cell.Прецеденты (Visio)

Возвращает массив ячеек ShapeSheet, от которого зависит формула другой ячейки. Только для чтения.

Синтаксис

expression. Прецеденты

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

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

Cell()

Замечания

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

Пример

В следующем макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать свойство Прецеденты для отображения списка ячеек, от которых зависит ячейка "Scratch.X1" фигуры. Макрос рисует прямоугольник на активной странице, добавляет раздел Scratch в таблицу фигур прямоугольника, а затем вводит формулу в ячейку этого раздела, которая используется для наклона сторон прямоугольника внутрь, изменяя каждую из сторон прямоугольника на дугу. Так как формула, используемая для наклона сторон прямоугольника, зависит от ширины и высоты прямоугольника, ячейка, содержащая формулу Scratch.X1, зависит от ячеек Ширина и Высота фигуры прямоугольника, что делает эти ячейки прецедентами.

Public Sub Precedents_Example() 
 
 Dim acellPrecedentCells() As Visio.Cell 
 Dim vsoCell As Visio.Cell 
 Dim vsoShape As Visio.Shape 
 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" 
 
 'Draw a rectangle on the active page 
 Set vsoShape = ActivePage.DrawRectangle(1, 5, 5, 1) 
 
 'Add a scratch section and then 
 vsoShape.AddSection visSectionScratch 
 
 'Add a row to the scratch section 
 vsoShape.AddRow visSectionScratch, visRowScratch, 0 
 
 'Place the value of strBowFormula into Scratch.X1 
 'Set the Cell object to the Scratch.X1 and set formula 
 Set vsoCell = vsoShape.Cells(strBowCell) 
 
 'Set up the offset for the arc 
 vsoCell.Formula = strBowFormula 
 
 'Bow in or curve the original rectangle's lines by changing 
 'each row to an arc 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 
 
 'Get the array of precedent cells 
 acellPrecedentCells = vsoShape.Cells("Scratch.X1").Precedents 
 
 'List the cell names and their associated formula 
 For intCounter = LBound(acellPrecedentCells) To UBound(acellPrecedentCells) 
 Set vsoCell = acellPrecedentCells(intCounter) 
 Debug.Print vsoCell.Name & " has this formula: " & vsoCell.Formula 
 Next 
 
End Sub

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

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