Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.