Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Возвращает формулы многих ячеек.
Синтаксис
выражение.
GetFormulas( _SRCStream()_ , _formulaArray()_ )
выражение Переменная, представляющая объект стиля .
Параметры
| Имя | Обязательный или необязательный | Тип данных | Описание |
|---|---|---|---|
| SID_SRCStream() | Обязательный | Integer | Поток, определяющий ячейки для запроса. |
| formulaArray() | Обязательный | Variant | Параметр Out. Массив, который получает формулы запрашиваемых ячеек. |
Возвращаемое значение
Отсутствует
Примечания
Метод GetFormulas похож на свойство Formula объекта Cell , за исключением того, что его можно использовать для получения формул сразу из нескольких ячеек, а не из одной ячейки. Метод GetFormulas является специализацией метода GetResults , который можно использовать для получения формул или результатов ячеек. Настройка вызова метода GetFormulas требует немного меньше усилий, чем настройка метода GetResults .
Для объектов типа Style можно использовать метод GetFormulas , чтобы получить формулы из любого набора ячеек.
SID_SRCStream() — массив 2-байтовых целых чисел. Для объектов StyleSID_SRCStream() должен быть одномерным массивом из 3 n 2-байтовых целых чисел для некоторых n>= 1. GetFormulas интерпретирует поток следующим образом:
{sectionIdx, rowIdx, cellIdx}n
где sectionIdx — индекс раздела нужной ячейки, rowIdx — индекс строки, а cellIdx — индекс ячейки.
Если метод GetFormulas выполняется успешно, formulaArray() возвращает одномерный массив n вариантов с индексацией от 0 до n - 1. Каждый вариант возвращает формулу в виде строки. formulaArray() — это выходной параметр, выделяемый методом GetFormulas , который передает право собственности вызывающему объекту. Вызывающий объект должен в конечном итоге выполнить процедуру SafeArrayDestroy для возвращенного массива. Обратите внимание, что процедура SafeArrayDestroy имеет побочный эффект удаления вариантов, на которые ссылаются записи массива, следовательно, освобождая любые строки, возвращаемые методом GetFormulas . (Microsoft Visual Basic и Microsoft Visual Basic для приложений позаботятся об этом за вас.) Метод GetFormulas завершается с ошибкой, если formulaArray() имеет значение null.
Примечание.
Начиная с Microsoft Visio 2000, для обозначения фигур, образцов, документов, страниц, строк, надстроек, ячеек, гиперссылок, стилей, шрифтов, master ярлыков, объектов пользовательского интерфейса и слоев можно использовать как локальные, так и универсальные имена. Например, когда пользователь дает имя фигуре, он указывает локальное имя. Начиная с Microsoft Office Visio 2003, в формулах и значениях ячеек отображается только таблица свойств фигур. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)
Разработчик может использовать универсальные имена в программе, если вы не хотите менять имя каждый раз при локализации решения. Используйте метод GetFormulas , чтобы получить несколько формул при использовании локального синтаксиса. Используйте метод GetFormulasU , чтобы получить несколько формул при использовании универсального синтаксиса.
Пример
В следующем макросе показано, как использовать метод GetFormulas . Предполагается, что существует активная страница Microsoft Visio, содержащая по крайней мере три фигуры. Функция GetFormulas используется для получения ширины фигуры 1, высоты фигуры 2 и угла наклона фигуры 3.
В этом примере метод GetFormulas объекта Page используется для получения формул из трех ячеек. Входной массив имеет четыре слота для каждой ячейки, как и для объектов Master . Для объектов формы или стиля для каждой ячейки (секции, строки и ячейки) потребуется всего три слота.
Public Sub GetFormulas_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.GetFormulas 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 и обратная связь.