Style.GetFormulas - метод (Visio)

Возвращает формулы многих ячеек.

Синтаксис

выражение. 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 и обратная связь.