Метод Page. Жетформуласу (Visio)Page.GetFormulasU method (Visio)

Возвращает формулы во многих ячейках.Returns the formulas of many cells.

СинтаксисSyntax

выражение.expression. GetFormulasU( _SID_SRCStream()_ , _formulaArray()_ )GetFormulasU( _SID_SRCStream()_ , _formulaArray()_ )

Expression (выражение ) Переменная, представляющая объект Page .expression A variable that represents a Page object.

ПараметрыParameters

ИмяName Обязательный или необязательныйRequired/Optional Тип данныхData type ОписаниеDescription
SID_SRCStream ()SID_SRCStream() ОбязательнаRequired Целое числоInteger Поток, идентифицирующий ячейки, которые будут запрашиваться.Stream identifying cells to be queried.
Формулааррай ()formulaArray() ОбязательныйRequired VariantVariant Выходной параметр.Out parameter. Массив, который получает формулы для запрашиваемых ячеек.Array that receives formulas of queried cells.

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

ОтсутствуетNothing

ПримечанияRemarks

Метод жетформуласу похож на свойство формулау объекта Cell , за исключением того, что вы можете использовать его для одновременного получения формул нескольких ячеек, а не по одной ячейке за раз.The GetFormulasU method is like the FormulaU property of a Cell object, except you can use it to obtain the formulas of many cells at once, rather than one cell at a time. Метод жетформуласу является специализацией метода Results , который можно использовать для получения формул или результатов ячеек.The GetFormulasU method is a specialization of the GetResults method, which can be used to obtain cell formulas or results. Настройка вызова метода жетформуласу требует немного меньше усилий, чем Настройка метода GetSetting .Setting up a call to the GetFormulasU method involves slightly less work than setting up the GetResults method.

С помощью метода жетформуласу можно получить формулы в универсальном синтаксисе любого набора ячеек в любом наборе фигур страницы или образца.You can use the GetFormulasU method to get formulas in universal syntax of any set of cells in any set of shapes of the page or master.

SID_SRCStream () — это массив из 2-байтовых целых чисел.SID_SRCStream() is an array of 2-byte integers. SID_SRCStream () должен быть одномерным массивом из 4 n 2-байтовых целых чисел для n >= 1.SID_SRCStream() should be a one-dimensional array of 4 n 2-byte integers for n >= 1. Метод жетформуласу интерпретирует SID_SRCStream () как:The GetFormulasU method interprets SID_SRCStream() as:

{sheetID, sectionIdx, rowIdx, cellIdx}n

где sheetID — это свойство ID объекта Shape на странице или в образце, для которого требуется Формула ячейки.where sheetID is the ID property of the Shape object on the page or master whose cell formula is desired.

Примечание

Если sheetID в записи — висинвалшапеид (-1) или в нижнем байте сектионидксвиссектионинвал (255), запись будет игнорироваться, а в соответствующей записи массива результатов будет возвращен пустой Variant.If the sheetID in an entry is visInvalShapeID (-1) or if the bottom byte of sectionIdx is visSectionInval (255), the entry will be ignored and an empty variant will be returned in the corresponding results array entry. Причина этого заключается в том, что один и тот же массив SID_SRCStream () можно использовать для нескольких вызовов жетформуласу, сетформуласи схожих методов с вызывающим абонентом только для внесения незначительных изменений в поток между вызовами.The reason for this is that the same SID_SRCStream() array can be used on several calls to GetFormulasU, SetFormulas, and similar methods with the caller only needing to make minor changes to the stream between calls.

Если метод жетформуласу завершается успешно, формулааррай () Возвращает одномерный массив n Variant, индексируемый от 0 до n -1.If the GetFormulasU method succeeds, formulaArray() returns a one-dimensional array of n variants indexed from 0 to n - 1. Каждый вариант возвращает формулу в виде строки.Each variant returns a formula as a string. формулааррай () — это параметр out, который выделяется методом жетформуласу , который передает владение абоненту.formulaArray() is an out parameter that is allocated by the GetFormulasU method, which passes ownership back to the caller. Вызывающий абонент должен в конечном итоге выполнить процедуру сафеаррайдестрой для возвращенного массива.The caller should eventually perform the SafeArrayDestroy procedure on the returned array. Обратите внимание, что процедура сафеаррайдестрой имеет побочный результат очистки вариантов, на которые ссылаются записи массива, и, таким образом, отменяется выделение всех строк, возвращаемых методом жетформуласу .Note that the SafeArrayDestroy procedure has the side effect of clearing the variants referenced by the array's entries, hence deallocating any strings the GetFormulasU method returns. (Microsoft Visual Basic и Microsoft Visual Basic для приложений помогут вам это сделать.) Метод жетформуласу завершается с ошибкой, если формулааррай () имеет значение NULL.(Microsoft Visual Basic and Microsoft Visual Basic for Applications take care of this for you.) The GetFormulasU method fails if formulaArray() is Null.

Примечание

Начиная с Microsoft Visio 2000, вы можете использовать как локальные, так и универсальные имена, чтобы ссылаться на фигуры Visio, образцы, документы, страницы, строки, надстройки, ячейки, гиперссылки, стили, шрифты, основные ярлыки, объекты пользовательского интерфейса и слои.Beginning with Microsoft Visio 2000, you can use both local and universal names to refer to Visio shapes, masters, documents, pages, rows, add-ons, cells, hyperlinks, styles, fonts, master shortcuts, UI objects, and layers. Например, если пользователь называет фигуру, то пользователь указывает локальное имя.When a user names a shape, for example, the user is specifying a local name. Начиная с Microsoft Office Visio 2003, таблица таблицы свойств фигуры содержит только универсальные имена в формулах и значениях ячеек.Beginning with Microsoft Office Visio 2003, the ShapeSheet spreadsheet displays only universal names in cell formulas and values. (В предыдущих версиях универсальные имена не отображались в пользовательском интерфейсе.)(In prior versions, universal names were not visible in the user interface.)

Как разработчик вы можете использовать универсальные имена в программе, если вы не хотите менять имя при каждом локализации решения.As a developer, you can use universal names in a program when you don't want to change a name each time a solution is localized. Используйте методических формул для получения более одной формулы при использовании локального синтаксиса.Use the GetFormulas method to get more than one formula when you are using local syntax. Используйте метод жетформуласу для получения более одной формулы при использовании универсального синтаксиса.Use the GetFormulasU method to get more than one formula when you are using universal syntax.

ПримерExample

В следующем макросе показано, как использовать метод жетформуласу .The following macro shows how to use the GetFormulasU method. Предполагается, что существует активная страница Visio, которая содержит по крайней мере три фигуры.It assumes that there is an active Visio page that has at least three shapes on it. Он использует жетформуласу для получения ширины фигуры 1, высоты фигуры 2 и угла фигуры 3.It uses GetFormulasU to get the width of shape 1, the height of shape 2, and the angle of shape 3.

В этом примере показано, как использовать метод жетформуласу объекта Page для получения трех формул ячеек. входной массив содержит четыре слота для каждой ячейки, как и для основных объектов.This example uses the GetFormulasU method of the Page object to get three cell formulas The input array has four slots for each cell, as it also would for Master objects. Для объектов Shape и Style для каждой ячейки (раздел, строка и ячейка) требуется только три ячейки (раздел, строка и ячейка).For Shape or Style objects, only three slots would be needed for each cell (section, row, and cell).

 
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

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

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.