Page.GetFormulasU-Methode (Visio)

Gibt die Formeln vieler Zellen zurück.

Syntax

Ausdruck. GetFormulasU( _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 GetFormulasU-Methode ähnelt der FormulaU-Eigenschaft eines Cell-Objekts , mit dem Unterschied, dass Sie sie verwenden können, um die Formeln vieler Zellen gleichzeitig abzurufen, anstatt eine Zelle nach der anderen. Die GetFormulasU-Methode ist eine Spezialisierung der GetResults-Methode , die zum Abrufen von Zellformeln oder Ergebnissen verwendet werden kann. Das Einrichten eines Aufrufs der GetFormulasU-Methode erfordert etwas weniger Arbeit als das Einrichten der GetResults-Methode .

Verwenden Sie die GetFormulasU-Methode, um Formeln in universeller Syntax für einen beliebigen Satz von Zellen in einem beliebigen Satz von Formen der Seite oder des Masters abzurufen.

SID_SRCStream() ist ein Array von ganzen 2-Byte-Zahlen. SID_SRCStream() sollte ein eindimensionales Array von 4 n 2-Byte-Ganzzahlen für n>= 1 sein. Die GetFormulasU-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 wenn das untere Byte von sectionIdxvisSectionInval (255) ist, wird der Eintrag ignoriert und eine leere Variante im entsprechenden Ergebnisarrayeintrag zurückgegeben. Der Grund dafür ist, dass dasselbe SID_SRCStream()- Array für mehrere Aufrufe von GetFormulasU, SetFormulas und ähnlichen Methoden verwendet werden kann, wobei der Aufrufer zwischen den Aufrufen nur geringfügige Änderungen am Stream vornehmen muss.

Wenn die GetFormulasU-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 GetFormulasU-Methode zugewiesen 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 in den Einträgen des Arrays verwiesen wird, und somit alle Zeichenfolgen freigegeben werden, die von der GetFormulasU-Methode zurückgegeben werden. (Microsoft Visual Basic und Microsoft Visual Basic for Applications übernehmen dies für Sie.) Die GetFormulasU-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 GetFormulasU-Methode verwendet wird. Voraussetzung für das Makro ist ein aktives Visio-Zeichenblatt mit mindestens drei Shapes. GetFormulasU 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 GetFormulasU-Methodedes Page-Objekts verwendet, um drei Zellenformeln abzurufen. Das Eingabearray verfügt wie bei Masterobjekten über vier Slots für jede Zelle. Für Shape- oder Style-Objekte wären für jede Zelle nur drei Umsetzungsplätze erforderlich (Abschnitt, Zeile und Zelle).

 
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 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.