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 のサポートおよびフィードバックを参照してください。