Freigeben über


Page.GetFormulas-Methode (Visio)

Gibt die Formeln vieler Zellen zurück.

Syntax

Ausdruck. GetFormulas( _SID_SRCStream()_ , _formulaArray()_ )

Ausdruck Eine Variable, die ein Page-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
SID_SRCStream() Erforderlich Integer Datenstrom, der die abzufragenden Zellen identifiziert.
formulaArray() Erforderlich Variant Ausgabeparameter. Ein Array, das Formeln abgefragter Zellen empfängt.

Rückgabewert

Nichts

Bemerkungen

Die GetFormulas-Methode ähnelt der Formula-Eigenschaft eines Cell-Objekts , mit der Ausnahme, dass Sie sie verwenden können, um die Formeln von vielen Zellen gleichzeitig und nicht von einer Zelle gleichzeitig abzurufen. Die GetFormulas-Methode ist eine Spezialisierung der GetResults-Methode , die zum Abrufen von Zellformeln oder Ergebnissen verwendet werden kann. Das Einrichten eines Aufrufs der GetFormulas-Methode erfordert etwas weniger Arbeit als das Einrichten der GetResults-Methode .

Für Page-Objekte können Sie die GetFormulas-Methode verwenden, um Formeln einer Reihe von Zellen in einer Reihe von Shapes des Zeichenblatts oder des Masters abzurufen.

SID_SRCStream() ist ein Array von ganzen 2-Byte-Zahlen. Für Page-Objekte sollte SID_SRCStream() ein eindimensionales Array von 4 n ganzen 2-Byte-Zahlen für n>= 1 sein. Die GetFormulas-Methode interpretiert SID_SRCStream() folgendermaßen:

{sheetID, sectionIdx, rowIdx, cellIdx}n

Dabei ist sheetID die ID-Eigenschaft des Shape-Objekts auf dem Zeichenblatt oder Master, dessen Zellformel abgerufen werden soll.

Hinweis

Wenn die sheetID in einem Eintrag visInvalShapeID (-1) ist oder das untere Byte von sectionIdxvisSectionInval (255) ist, wird der Eintrag ignoriert, und eine leere Variante wird im entsprechenden Ergebnisarrayeintrag zurückgegeben. Dies liegt daran, dass das gleiche SID_SRCStream() -Array für mehrere Aufrufe von GetFormulas, SetFormulas und ähnlichen Methoden verwendet werden kann, wobei der Aufrufer nur geringfügige Änderungen am Datenstrom zwischen Aufrufen vornehmen muss.

Wenn die GetFormulas-Methode erfolgreich ist, gibt formulaArray() ein eindimensionales Array von n Varianten zurück, die von 0 bis n - 1 indiziert sind. Jede Variante gibt eine Formel als Zeichenfolge zurück. formulaArray() ist ein out-Parameter, der von der GetFormulas-Methode zugeordnet wird, die den Besitz an den Aufrufer zurückgibt. Der Aufrufer sollte zum Schluss die SafeArrayDestroy-Prozedur für das zurückgegebene Array ausführen. Beachten Sie, dass die SafeArrayDestroy-Prozedur den Nebeneffekt hat, dass die Varianten gelöscht werden, auf die von den Einträgen des Arrays verwiesen wird, und daher die Zuordnung aller Zeichenfolgen aufgehoben wird, die die GetFormulas-Methode zurückgibt. (Microsoft Visual Basic und Microsoft Visual Basic for Applications übernehmen dies für Sie.) Die GetFormulas-Methode schlägt fehl, wenn formulaArray()null ist.

Hinweis

Ab Microsoft Visio 2000 können Sie sowohl lokale als auch universelle Namen verwenden, um auf Shapes, Master-Shapes, Dokumente, Zeichenblätter, Zeilen, Add-Ons, Zellen, Hyperlinks, Formatvorlagen, Schriftarten, Master-Shape-Verknüpfungen, Benutzeroberflächenobjekte und Layer von Visio zu verweisen. Wenn ein Benutzer z. B. ein Shape verwendet, gibt er einen lokalen Namen an. Ab Microsoft Office Visio 2003 werden in der ShapeSheet-Kalkulationstabelle nur universelle Namen in Zellformeln und Werten angezeigt. (In früheren Versionen wurden universelle Namen in der Benutzeroberfläche nicht angezeigt.)

Als Entwickler können Sie universelle Namen in einem Programm verwenden, falls Sie einen Namen nicht jedes Mal ändern möchten, wenn eine Lösung lokalisiert wird. Verwenden Sie die GetFormulas-Methode, um mehr als eine Formel abzurufen, wenn Sie die lokale Syntax verwenden. Verwenden Sie die GetFormulasU-Methode, um mehr als eine Formel abzurufen, wenn Sie die universelle Syntax verwenden.

Beispiel

Mit dem folgenden Makro wird gezeigt, wie die GetFormulas-Methode verwendet wird. Voraussetzung für das Makro ist ein aktives Microsoft Visio-Zeichenblatt mit mindestens drei Shapes. GetFormulas wird dazu verwendet, die Breite von Shape 1, die Höhe von Shape 2 und den Winkel von Shape 3 abzurufen.

In diesem Beispiel wird die GetFormulas-Methode des Page-Objekts verwendet, um drei Zellformeln abzurufen. Das Eingabearray weist vier Umsetzungsplätze für jede Zelle aus, dies wäre auch für Master-Objekte der Fall. Für Shape- oder Style-Objekte wären für jede Zelle nur drei Umsetzungsplätze erforderlich (Abschnitt, Zeile und Zelle).

 
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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.