GetResults メソッド (Visio)Shape.GetResults method (Visio)

複数のセルの結果または数式を取得します。Gets the results or formulas of many cells.

構文Syntax

expression.expression. GetResults( _SRCStream()_ , _Flags_ , _UnitsNamesOrCodes()_ , _resultArray()_ )

Shape オブジェクトを表す変数を取得します。expression A variable that represents a Shape object.

ParametersParameters

名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
SID_SRCStream()SID_SRCStream() 必須Required 整数型 (Integer)Integer 問い合わせるセルを識別する配列です。An array that identifies cells to be queried.
FlagsFlags 必須Required 整数型 (Integer)Integer 結果として返されるエントリの種類を制御するフラグです。Flags that influence the type of entries returned in results.
コードを単位とする ()UnitsNamesOrCodes() 必須Required VariantVariant 返される結果の寸法の単位で構成される配列です。An array of measurement units that results are to be returned in.
resultArray()resultArray() 必須Required VariantVariant 出力パラメーターです。Out parameter. 問い合わせたセルの結果または数式を受け取る配列です。An array that receives results or formulas of queried cells.

戻り値Return value

なしNothing

解説Remarks

GetResultsメソッドは、 CellオブジェクトのResultプロパティに似ていますが、一度に1つのセルではなく、複数のセルの結果 (値) を取得するために使用できる点が異なります。The GetResults method is like the Result property for the Cell object, except that it can be used to get the results (values) of many cells at once, rather than one cell at a time.

Shapeオブジェクトの場合、 GetResultsメソッドを使用して、任意のセルのセットの結果を取得できます。For Shape objects, you can use the GetResults method to get results of any set of cells.

SID_SRCStream() は 2 バイトの整数で構成される配列です。SID_SRCStream() is an array of 2-byte integers. Shapeオブジェクトの場合、 SID_SRCStream () は、 n > = 1 の 3 n 2 バイト整数の1次元配列である必要があります。For Shape objects, SID_SRCStream() should be a one-dimensional array of 3 n 2-byte integers for n >= 1. GetResults メソッドは SID_SRCStream() を次のように解釈します。The GetResults method interprets SID_SRCStream() as:

{sectionIdx, rowIdx, cellIdx }n

_Sectionidx_は目的セルのセクションインデックス、 _rowIdx_は行インデックス、 _cellidx_はセルのインデックスです。where sectionIdx is the section index of the desired cell, rowIdx is its row index and cellIdx is its cell index.

_Flags_引数は、返される結果のどのデータ型を表すかを示します。The Flags argument indicates what data type the returned results should be expressed in. パラメーターの値は次のいずれかになります。Its value should be one of the following.

定数Constant Value 説明Description
visGetFloatsvisGetFloats .00 結果が倍精度浮動小数点型で返されます (VT_R8)。Results returned as doubles (VT_R8).
visGetTruncatedIntsvisGetTruncatedInts 1-d1 結果が、切り捨てられた長整数型で返されます (VT_I4)。Results returned as truncated long integers (VT_I4).
visGetRoundedIntsvisGetRoundedInts pbm-22 結果が、四捨五入された長整数型で返されます (VT_I4)。Results returned as rounded long integers (VT_I4).
visGetStringsvisGetStrings 1/33 結果が文字列で返されます (VT_BSTR)。Results returned as strings (VT_BSTR).
visGetFormulasvisGetFormulas 2/44 数式が文字列として返されます (VT_BSTR)。Formulas returned as strings (VT_BSTR).
visGetFormulasUvisGetFormulasU 55 数式が汎用構文として返されます (VT_BSTR)。Formulas returned in universal syntax (VT_BSTR).

Units Namesorコード () パラメーターは、返される測定単位を制御する配列です。The UnitsNamesOrCodes() parameter is an array that controls what measurement units individual results are returned in. この配列の各エントリには、"inches"、"inch"、"in"、"i" などの文字列が格納されます。Each entry in the array can be a string such as "inches", "inch", "in.", or "i". センチメートル、メートル、マイルなど、Visio がサポートしているすべての単位の文字列を使用できます。Strings may be used for all supported Visio units such as centimeters, meters, miles, and so on. Visio タイプ ライブラリで宣言されている整数の定数 (visCentimetersvisInches など) を使用して、必要な単位を指定することもできます。You can also indicate desired units with integer constants (visCentimeters, visInches, etc.) declared by the Visio type library. FlagsvisGetFormulas の場合、UnitsNamesOrCodes() 配列に指定した値は無効になります。Note that the values specified in the UnitsNamesOrCodes() array have no effect if Flags is visGetFormulas.

指定__ した引数が null でない場合、アプリケーションでは、1次元配列 < = uvariantになることが想定されます。If UnitsNamesOrCodes is not null, the application expects it to be a one-dimensional array of 1 <= uVariants. 各エントリには、文字列または整数コード、あるいは空 (nothing) のいずれかを指定できます。Each entry can be a string or integer code, or empty (nothing). _I_番目のエントリが空の場合、 i_番目に返された結果は、 (j) を指定した単位で返されます。ここで、 j_は、最後に空でないエントリのインデックスです。If the i 'th entry is empty, the i 'th returned result is returned in the units designated by UnitsNamesOrCodes(j), where j is the index of the most recent prior non-empty entry. そのため、返されるすべての値を同じ単位にする必要がある場合は、1つのエントリを含む unit Namesorコード () 配列のみを渡す必要があります。Thus if you want all returned values to be in the same units, you need only pass a UnitsNamesOrCodes() array with one entry. 空ではないエントリが存在しない場合、または 、指定されたvisNumber (0x20) 配列が指定されていない場合は、使用されます。If there is no prior non-empty entry, or if no UnitsNameOrCodes() array is supplied, visNumber (0x20) is used. これにより、内部単位 ( Cellオブジェクトのresultiuプロパティなど) が返されます。This causes internal units (like the ResultIU property of a Cell object) to be returned.

GetResultsメソッドが正常に実行されると、結果として、ゼロ (0) から_n_ -1 のインデックスが付けられた_n_個のバリアント型 (variant) の1次元配列が返されます。If the GetResults method succeeds, results returns a one-dimensional array of n variants indexed from zero (0) to n - 1. 返されるバリアントの種類は、Flags の関数です。The type of the returned variants is a function of Flags. ResultArray () パラメーターは、 GetResultsメソッドによって割り当てられる out パラメーターで、所有権を呼び出し元に渡します。The resultArray() parameter is an out parameter that is allocated by the GetResults method, which passes ownership back to the caller. 最終的には、呼び出し側は、返された配列に対して SafeArrayDestroy を実行する必要があります。The caller should eventually perform SafeArrayDestroy on the returned array. SafeArrayDestroyには、配列のエントリによって参照されるバリアント型の値がクリアされるという副作用があることに注意してください。したがって、 GetResultsメソッドから返される文字列は解放されます。Note that SafeArrayDestroy has the side effect of clearing the variants referenced by the array's entries, hence deallocating any strings the GetResults method returns. このため、GetResults メソッドによって返されるすべての文字列の割り当てが解除されます (Microsoft Visual Basic および Microsoft Visual Basic for Applications ではこの処理が自動的に行われます)。(Microsoft Visual Basic and Microsoft Visual Basic for Applications take care of this for you.)

Example

次の例は、 GetResultsメソッドの使用方法を示しています。The following example shows how to use the GetResults method. この例では、少なくとも 3 個の図形を含むアクティブ ページがあることが前提となっています。This example assumes there is an active page that has at least 3 shapes on it. GetResults メソッドを使用して図形 1 の幅、図形 2 の高さ、および図形 3 の角度を取得します。It uses the GetResults method to get the width of shape 1, the height of shape 2, and the angle of shape 3.

この例では、 PageオブジェクトのGetResultsメソッドを使用して、3つのセルの数式を取得します。This example uses the GetResults method of the Page object to get 3 cell formulas. 入力配列は、Master オブジェクトと同様に各セルの 4 個のスロットを持ちます。The input array has 4 slots for each cell, as it also would for Master objects. Shape オブジェクトまたは Style オブジェクトに対しては、各セル (セクション、行、およびセル) に 3 個のスロットがあれば十分です。For Shape or Style objects, only 3 slots would be needed for each cell (section, row, and cell).

 
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 and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.