Master.GetFormulas-Methode (Visio)
Gibt die Formeln vieler Zellen zurück.
Syntax
Ausdruck. GetFormulas
( _SID_SRCStream()_
, _formulaArray()_
)
Ausdruck Eine Variable, die ein Master-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
SID_SRCStream() | Erforderlich | Integer | Ein 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 Master-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 Master-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. (Dies wird von Microsoft Visual Basic und Microsoft Visual Basic für Applikationen (VBA) ausgeführt.) 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 VBA-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.