Свойство Cell.FormulaU (Visio)
Возвращает или задает универсальную формулу синтаксиса для объекта Cell . Для чтения и записи.
Синтаксис
expression. Формула
Выражение Переменная, представляющая объект Cell .
Возвращаемое значение
Строка
Замечания
Если формула ячейки защищена функцией GUARD, необходимо использовать свойство FormulaForceU для изменения формулы ячейки.
Примечание.
Начиная с Microsoft Visio 2000, вы можете использовать локальные и универсальные имена для ссылки на фигуры Visio, образцы, документы, страницы, строки, надстройки, ячейки, гиперссылки, стили, шрифты, основные сочетания клавиш, объекты пользовательского интерфейса и слои. Например, когда пользователь присваивает имя фигуре, пользователь указывает локальное имя. Начиная с Microsoft Office Visio 2003 электронная таблица shapesheet отображает только универсальные имена в формулах и значениях ячеек. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)
Как разработчик, вы можете использовать универсальные имена в программе, если вы не хотите изменять имя каждый раз, когда решение локализуется. Используйте свойство Formula , чтобы получить строку формулы ячейки в локальном синтаксисе или использовать сочетание локального и универсального синтаксиса, чтобы задать ее. Используйте свойство FormulaU для получения или анализа формулы в универсальном синтаксисе. При использовании FormulaU десятичной запятой всегда является ".", разделитель всегда "," и необходимо использовать универсальные строки единиц измерения (дополнительные сведения об универсальных строках см. в разделе Сведения о единицах измерения).
Если решение Visual Studio содержит ссылку microsoft.Office.Interop.Visio , это свойство сопоставляется со следующими типами:
- Microsoft.Office.Interop.Visio.IVCell.FormulaU
Пример
В этом макросе Microsoft Visual Basic для приложений (VBA) показано, как использовать свойство FormulaU для задания формулы для ячейки Таблицы фигур. Он рисует прямоугольник на странице и смычки или изгибает линии прямоугольника, изменяя линии фигуры на дуги. Затем он рисует внутренний прямоугольник в наклонных линиях первого прямоугольника.
Public Sub FormulaU_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 intIndex As Integer
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 to the shape's ShapeSheet.
vsoShape.AddSection visSectionScratch
'Add a row to the Scratch section.
vsoShape.AddRow visSectionScratch, visRowScratch, 0
'Set vsoCell to the Scratch.X1 cell and set its formula.
Set vsoCell = vsoShape.Cells(strBowCell)
vsoCell.FormulaU = 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.FormulaU = "-" & strBowCell
Next intCounter
'Create an inner rectangle.
'Set the section index for the inner rectangle's Geometry section.
intIndex = visSectionFirstComponent + 1
'Add an inner rectangle Geometry section.
vsoShape.AddSection intIndex
'Add the first 2 rows to the section.
vsoShape.AddRow intIndex, visRowComponent, visTagComponent
vsoShape.AddRow intIndex, visRowVertex, visTagMoveTo
'Add 4 LineTo rows to the section.
For intCounter = 1 To 4
vsoShape.AddRow intIndex, visRowLast, visTagLineTo
Next intCounter
'Set the inner rectangle start point cell formulas.
Set vsoCell = vsoShape.CellsSRC(intIndex, 1, 0)
vsoCell.FormulaU = "Width * 0 + " & strBowCell
Set vsoCell = vsoShape.CellsSRC(intIndex, 1, 1)
vsoCell.FormulaU = "Height * 0 + " & strBowCell
'Draw the inner rectangle bottom line.
Set vsoCell = vsoShape.CellsSRC(intIndex, 2, 0)
vsoCell.FormulaU = "Width * 1 - " & strBowCell
Set vsoCell = vsoShape.CellsSRC(intIndex, 2, 1)
vsoCell.FormulaU = "Height * 0 + " & strBowCell
'Draw the inner rectangle right side line.
Set vsoCell = vsoShape.CellsSRC(intIndex, 3, 0)
vsoCell.FormulaU = "Width * 1 - " & strBowCell
Set vsoCell = vsoShape.CellsSRC(intIndex, 3, 1)
vsoCell.FormulaU = "Height * 1 - " & strBowCell
'Draw the inner rectangle top line.
Set vsoCell = vsoShape.CellsSRC(intIndex, 4, 0)
vsoCell.FormulaU = "Width * 0 + " & strBowCell
Set vsoCell = vsoShape.CellsSRC(intIndex, 4, 1)
vsoCell.FormulaU = "Height * 1 - " & strBowCell
'Draw the inner rectangle left side line.
Set vsoCell = vsoShape.CellsSRC(intIndex, 5, 0)
vsoCell.FormulaU = "Geometry2.X1"
Set vsoCell = vsoShape.CellsSRC(intIndex, 5, 1)
vsoCell.FormulaU = "Geometry2.Y1"
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.