Метод Page.GetFormulasU (Visio)
Возвращает формулы многих ячеек.
Синтаксис
выражение. GetFormulasU
( _SID_SRCStream()_
, _formulaArray()_
)
Выражение Переменная, представляющая объект Page .
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
SID_SRCStream() | Обязательный | Integer | Поток, определяющий запрашиваемые ячейки. |
formulaArray() | Обязательный | Variant | Параметр Out. Массив, получающий формулы запрашиваемых ячеек. |
Возвращаемое значение
Отсутствует
Примечания
Метод GetFormulasU похож на свойство FormulaU объекта Cell , за исключением того, что его можно использовать для получения формул сразу нескольких ячеек, а не одной ячейки за раз. Метод GetFormulasU является специализацией метода GetResults , который можно использовать для получения формул ячеек или результатов. Настройка вызова метода GetFormulasU требует немного меньше работы, чем настройка метода GetResults .
Используйте метод GetFormulasU для получения формул в универсальном синтаксисе любого набора ячеек в любом наборе фигур страницы или образца.
SID_SRCStream() — это массив из 2-байтовых целых чисел. SID_SRCStream() должен быть одномерным массивом из 4 n 2-байтовых целых чисел для n>= 1. Метод GetFormulasU интерпретирует SID_SRCStream() как:
{sheetID, sectionIdx, rowIdx, cellIdx}n
где sheetID — это свойство ID объекта Shape на странице или главном элементе, формула ячейки которого требуется.
Примечание.
Если sheetID в записи имеет значение visInvalShapeID (-1) или если нижний байт sectionIdx — visSectionInval (255), запись будет игнорироваться и в соответствующей записи массива результатов будет возвращен пустой вариант. Причина этого заключается в том, что один и тот же массив SID_SRCStream() можно использовать для нескольких вызовов GetFormulasU, SetFormulas и аналогичных методов, при этом вызывающему объекту необходимо только внести незначительные изменения в поток между вызовами.
Если метод GetFormulasU завершается успешно, функция formulaArray() возвращает одномерный массив из n вариантов, индексируемых от 0 до n - 1. Каждый вариант возвращает формулу в виде строки. formulaArray() — это параметр out, выделенный методом GetFormulasU , который передает права владения вызывающей стороне. В конечном итоге вызывающий объект должен выполнить процедуру SafeArrayDe в возвращаемом массиве. Обратите внимание, что процедура SafeArrayDeties имеет побочный эффект очистки вариантов, на которые ссылаются записи массива, что позволяет освободить все строки, возвращаемые методом GetFormulasU . (Microsoft Visual Basic и Microsoft Visual Basic для приложений позаботиться об этом за вас.) Метод GetFormulasU завершается ошибкой, если formulaArray() имеет значение NULL.
Примечание.
Начиная с Microsoft Visio 2000, вы можете использовать локальные и универсальные имена для ссылки на фигуры Visio, образцы, документы, страницы, строки, надстройки, ячейки, гиперссылки, стили, шрифты, основные сочетания клавиш, объекты пользовательского интерфейса и слои. Например, когда пользователь присваивает имя фигуре, пользователь указывает локальное имя. Начиная с Microsoft Office Visio 2003 электронная таблица shapesheet отображает только универсальные имена в формулах и значениях ячеек. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)
Как разработчик, вы можете использовать универсальные имена в программе, если вы не хотите изменять имя каждый раз, когда решение локализуется. Используйте метод GetFormulas для получения нескольких формул при использовании локального синтаксиса. Используйте метод GetFormulasU , чтобы получить несколько формул при использовании универсального синтаксиса.
Пример
В следующем макросе показано, как использовать метод GetFormulasU . Предполагается, что есть активная страница Visio, на ней есть по крайней мере три фигуры. Он использует GetFormulasU для получения ширины фигуры 1, высоты фигуры 2 и угла фигуры 3.
В этом примере метод GetFormulasU объекта Page используется для получения трех формул ячеек. Входной массив имеет четыре слота для каждой ячейки, как и для основных объектов. Для объектов Shape или Style для каждой ячейки (раздел, строка и ячейка) потребуется только три слота.
Public Sub GetFormulasU_Example()
On Error GoTo HandleError
Dim aintSheetSectionRowColumn(1 To 3 * 4) As Integer
aintSheetSectionRowColumn(1) = ActivePage.Shapes(1).ID
aintSheetSectionRowColumn(2) = visSectionObject
aintSheetSectionRowColumn(3) = visRowXFormOut
aintSheetSectionRowColumn(4) = visXFormWidth
aintSheetSectionRowColumn(5) = ActivePage.Shapes(2).ID
aintSheetSectionRowColumn(6) = visSectionObject
aintSheetSectionRowColumn(7) = visRowXFormOut
aintSheetSectionRowColumn(8) = visXFormHeight
aintSheetSectionRowColumn(9) = ActivePage.Shapes(3).ID
aintSheetSectionRowColumn(10) = visSectionObject
aintSheetSectionRowColumn(11) = visRowXFormOut
aintSheetSectionRowColumn(12) = visXFormAngle
'Return the formulas of the cells.
Dim avarFormulaArray() As Variant
ActivePage.GetFormulasU aintSheetSectionRowColumn, avarFormulaArray
Debug.Print "Shape 1 width is "; avarFormulaArray(0)
Debug.Print "Shape 2 height is "; avarFormulaArray(1)
Debug.Print "Shape 3 angle is "; avarFormulaArray(2)
Exit Sub
HandleError:
MsgBox "Error"
Exit Sub
End Sub
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по