Freigeben über


Page.GetResults-Methode (Visio)

Ruft die Ergebnisse oder die Formeln vieler Zellen ab.

Syntax

Ausdruck. GetResults( _SID_SRCStream()_ , _Flags_ , _UnitsNamesOrCodes()_ , _resultArray()_ )

Ausdruck Eine Variable, die ein Page-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
SID_SRCStream() Erforderlich Integer Array, das die abzufragenden Zellen identifiziert.
Flags Erforderlich Integer Kennzeichen, die die im Ergebnis zurückgegebenen Eintragstypen beeinflussen.
UnitsNamesOrCodes() Erforderlich Variant Array von Maßeinheiten, in denen die Ergebnisse zurückgegeben werden sollen.
resultArray() Erforderlich Variant Array, das die Ergebnisse oder Formeln abgefragter Zellen empfängt.

Rückgabewert

Nichts

Bemerkungen

Die GetResults-Methode ähnelt der Result-Eigenschaft für das Cell-Objekt, sie kann jedoch verwendet werden, um die Ergebnisse (Werte) vieler Zellen gleichzeitig abzurufen, statt einen Aufruf zurzeit auszuführen.

Für ein Page-Objekt können Sie die GetResults-Methode verwenden, um Ergebnisse einer Reihe von Zellen in einer Reihe von Shapes des Zeichenblatts 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 GetResults-Methode interpretiert SID_SRCStream() folgendermaßen:

{sheetID, sectionIdx, rowIdx, cellIdx }n

Dabei ist sheetID die ID-Eigenschaft des Shape-Objekts auf dem Zeichenblatt, dessen Zellergebnis 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. Der Grund dafür ist, dass das gleiche SID_SRCStream() -Array für mehrere Aufrufe von GetResults, SetResults und ähnlichen Methoden verwendet werden kann, wobei der Aufrufer nur geringfügige Änderungen am Datenstrom zwischen Aufrufen vornehmen muss.

Der Flags-Parameter gibt an, in welchem Datentyp die zurückgegebenen Ergebnisse ausgedrückt werden sollen. Es sollte einen der folgenden Werte aufweisen.

Konstante Wert Beschreibung
visGetFloats 0 Ergebnisse werden als Double-Werte zurückgegeben (VT_R8).
visGetTruncatedInts 1 Ergebnisse werden als abgeschnittene Long Integer-Werte zurückgegeben (VT_I4).
visGetRoundedInts 2 Ergebnisse werden als gerundete Long Integer-Werte zurückgegeben (VT_I4).
visGetStrings 3 Ergebnisse werden als String-Werte zurückgegeben (VT_BSTR).
visGetFormulas 4 Formeln werden als String-Werte zurückgegeben (VT_BSTR).
visGetFormulasU 5 Formeln werden in universeller Syntax zurückgegeben (VT_BSTR).

Der UnitsNamesOrCodes() -Parameter ist ein Array, das steuert, in welchen Maßeinheiten einzelne Ergebnisse zurückgegeben werden. Jeder Eintrag im Array kann eine Zeichenfolge wie "inches", "inch", "in." oder "i" sein. Zeichenfolgen können für alle unterstützten Visio-Einheiten wie Zentimeter, Meter, Meilen usw. verwendet werden. Sie können auch die gewünschten Einheiten mit ganzzahligen Konstanten (visCentimeter,visInches usw.) angeben, die von der Visio-Typbibliothek deklariert werden. Beachten Sie, dass die im UnitsNamesOrCodes() -Array angegebenen Werte keine Auswirkungen haben, wenn FlagsvisGetFormulas ist.

Wenn UnitsNamesOrCodes() nicht NULL ist, erwartet die Anwendung, dass es sich um ein eindimensionales Array von 1 <= uVariants handelt. Jeder Eintrag kann eine Zeichenfolge oder ganzzahliger Code oder leer (nichts) sein. Wenn der i 'te Eintrag leer ist, wird das zurückgegebene Ergebnis in den von UnitsNamesOrCodes(j) angegebenen Einheiten zurückgegeben, wobei j der Index des letzten vorherigen nicht leeren Eintrags ist. Wenn sich also alle zurückgegebenen Werte in den gleichen Einheiten befinden sollen, müssen Sie nur ein UnitsNamesOrCodes() -Array mit einem Eintrag übergeben. Wenn kein vorheriger nicht leerer Eintrag vorhanden ist oder kein UnitsNameOrCodes() -Array angegeben wird, wird visNumber (0x20) verwendet. Dadurch werden interne Einheiten (z. B. die ResultIU-Eigenschaft eines Cell-Objekts ) zurückgegeben.

Wenn die GetResults-Methode erfolgreich ist, gibt results ein eindimensionales Array von n Varianten zurück, die von null (0) bis n - 1 indiziert sind. Der Typ der zurückgegebenen Varianten ist eine Funktion von Flags. Der resultArray()- Parameter ist ein out-Argument, das von der GetResults-Methode zugeordnet wird, die den Besitz an den Aufrufer zurückgibt. Der Aufrufer sollte schließlich SafeArrayDestroy für das zurückgegebene Array ausführen. Beachten Sie, dass SafeArrayDestroy den Nebeneffekt hat, dass die Varianten, auf die durch die Einträge des Arrays verwiesen wird, gelöscht werden. Daher wird die Zuordnung aller Zeichenfolgen aufgehoben, die von der GetResults-Methode zurückgegeben werden. (Dies wird von Microsoft Visual Basic und Microsoft Visual Basic für Applikationen ausgeführt.)

Beispiel

Mit dem folgenden Beispiel wird gezeigt, wie die GetResults-Methode verwendet wird. Voraussetzung für das Beispiel ist ein aktives Zeichenblatt mit mindestens drei Shapes. Die GetResults-Methode 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 GetResults-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 GetResults_Example() 
 
 On Error GoTo HandleError 
 
 Dim intCounter As Integer 
 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 
 
 'Get first two values in inches. The second element in 
 'the units array is left uninitialized (empty) because we 
 'want the second result in the same units as the first 
 'result. The third result is initialized in degrees. Note that 
 'units can be expressed as a string or an integer constant. 
 Dim avarUnits(1 To 3) As Variant 
 avarUnits(1) = "in." 
 avarUnits(3) = visDegrees 
 
 'Return results of cells as an array of floating point numbers. 
 Dim avarResults() As Variant 
 ActivePage.GetResults aintSheetSectionRowColumn, visGetFloats, _ 
 avarUnits, avarResults 
 
 For intCounter = 0 To 3 
 Debug.Print avarResults(intCounter) 
 Next 
 
 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.