Application.ConvertResult メソッド (Visio)

文字列または数値を、異なるの寸法の単位で表された同等の数値に変換します。

構文

ConvertResult (StringOrNumber,UnitsIn, UnitsOut)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
StringOrNumber 必須 バリアント型 変換する文字列または数値です。文字列、浮動小数点数、または整数を指定できます。
UnitsIn 必須 バリアント型 StringOrNumber の属性に対する寸法単位です。
UnitsOut 必須 バリアント型 結果を示す寸法の単位です。

戻り値

倍精度浮動小数点数

注釈

StringOrNumber を文字列として渡す場合、この引数には、セルの数式またはセルで使用する予定の数式、あるいは文字列として表されたセルの結果またはこのセルで使用する予定の結果を指定します。 ConvertResult メソッドは文字列を評価し、その結果を UnitsOut で指定された単位に変換します。 ConvertResult メソッドでは、文字列にセル参照が含まれている場合はエラーが返されます。

StringOrNumber には次のような値を使用できます。

  • 1.7
  • 3
  • "2.5"
  • "4.1 cm"
  • "12 ft - 17 in + (12 cm / SQRT(7))"

引数 UnitsIn および UnitsOut には、"inches"、"inch"、"in." などの文字列を指定できます。 センチメートル、メートル、マイルなど、Visio がサポートしているすべての単位の文字列を使用できます。 Visio タイプ ライブラリの VisUnitCodes で宣言されている単位の定数を使用することもできます。 有効な単位の一覧は、[ メジャーの単位について] にも一覧表示されます。

StringOrNumber に浮動小数点数または整数を指定する場合、UnitsIn を使用して、ConvertResult メソッドが数値を解釈するための単位を宣言します。 Visio の内部単位を使用する場合は、"" を渡します。

StringOrNumber が文字列の場合、UnitsIn は評価された結果を解釈する方法を指定し、結果がスカラーの場合にのみ使用されます。 たとえば、式 "4 * 5 cm" はスカラーではない 20 cm に評価されるため、 UnitsIn は無視されます。 式 "4 * 5" はスカラーであり、指定された UnitsIn を使用して解釈される 20 に評価されます。

引数 UnitsOut は、戻り値を表す単位を指定します。 評価される式と同じ単位を使用する場合は、"NOCAST" または visNoCast を渡します。

文字列の指定例

Debug.Print vsoApplication.ConvertResult("0.5 * 2", "ft", "ft") >>> 1.0 
Debug.Print vsoApplication.ConvertResult("0.5 * 2", "ft", "in") >>> 12.0 
Debug.Print vsoApplication.ConvertResult("1 cm", "ft", "in") >>> 0.39 
Debug.Print vsoApplication.ConvertResult("1 cm", "ft", "NOCAST") >>> 1.0 
Debug.Print vsoApplication.ConvertResult("1 cm", "ft", "") >>> 0.39 
Debug.Print vsoApplication.ConvertResult("1 cm", "ft", "bz") >>> exception: Bad measurement unit. 


数値の指定例

 
Debug.Print vsoApplication.ConvertResult(1, "ft", "ft") >>> 1 
Debug.Print vsoApplication.ConvertResult(1, "ft", "in") >>> 12 
Debug.Print vsoApplication.ConvertResult(1.0, "in", "ft") >>> 8.33333333333333E-02 
Debug.Print vsoApplication.ConvertResult(1.0, visFeet, "") >>> 12 
Debug.Print vsoApplication.ConvertResult(1, "bz", "in") >>> exception: Bad measurement unit. 

次のマクロは、ConvertResult メソッドを使用して 2 つの図形の距離をセンチメートル、フィート、ヤード、マイル単位で表示する方法を示します。 このマクロを実行するには図面上で図形を 2 つ選択しておく必要があります。

Sub ConvertResult_Example() 
 
 Dim vsoApplication As Visio.Application 
 Dim vsoWindow As Visio.Window 
 Dim vsoSelection As Visio.Selection 
 Dim vsoShape1 As Visio.Shape 
 Dim vsoShape2 As Visio.Shape 
 
 Dim dblPinX1 As Double 
 Dim dblPinY1 As Double 
 Dim dblPinX2 As Double 
 Dim dblPinY2 As Double 
 Dim dblPinX1in As Double 
 Dim dblPinY1in As Double 
 Dim dblPinX2in As Double 
 Dim dblPinY2in As Double 
 Dim lngCount As Long 
 Dim dblDistance As Double 
 Dim dblDistanceX As Double 
 Dim dblDistanceY As Double 
 Dim dblResult(4) As Double 
 Dim strUnit As String 
 Set vsoApplication = Visio.Application 
 Set vsoWindow = vsoApplication.ActiveWindow 
 
 'Drawing page must be active window 
 If vsoWindow.Type = 1 Then 
 Set vsoSelection = vsoWindow.Selection 
 lngCount = vsoSelection.Count 
 
 'Exactly two shapes should be selected 
 If lngCount <> 2 Then 
 MsgBox "A total of " & lngCount & " shapes are " _ 
 & "selected. Please select two shapes and try " _ 
 & "again", 0 
 Else 
 Set vsoShape1 = vsoSelection.Item(1) 
 Set vsoShape2 = vsoSelection.Item(2) 
 
 'Pass the Visio Automation constant for inches (visInches, which is defined as 65) to the Result method to force units to inches 
 dblPinX1in = vsoShape1.Cells("PinX").Result(65) 
 dblPinY1in = vsoShape1.Cells("PinY").Result(65) 
 dblPinX2in = vsoShape2.Cells("PinX").Result(65) 
 dblPinY2in = vsoShape2.Cells("PinY").Result(65) 
 dblDistance = Sqr((dblPinX2in - dblPinX1in) ^ 2 + _ 
 (dblPinY2in - dblPinY1in) ^ 2) 
 
 'Convert distances from inches to centimeters, feet, yards, and miles 
 dblResult(1) = vsoApplication.ConvertResult(dblDistance, "in", "cm") 
 dblResult(2) = vsoApplication.ConvertResult(dblDistance, "in", "ft") 
 dblResult(3) = vsoApplication.ConvertResult(dblDistance, "in", "yd") 
 dblResult(4) = vsoApplication.ConvertResult(dblDistance, "in", "mi") 
 
 'Display results 
 MsgBox dblResult(1) & " centimeters; " & dblResult(2) & " feet; " & _ 
 dblResult(3) & " ;yards; " & dblResult(4) & " miles ", 0 
 
 End If 
 
 Else 
 MsgBox "The drawing page must be active.", 0 
 
 End If 
 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。