Application.ConvertResult-Methode (Visio)
Konvertiert eine Zeichenfolge oder eine Zahl in eine entsprechende Zahl in anderen Maßeinheiten.
Syntax
Ausdruck. ConvertResult (StringOrNumber, UnitsIn, UnitsOut)
expression Eine Variable, die ein Application-Objekt darstellt.
Parameter
Name | Erforderlich/Optional | Datentyp | Beschreibung |
---|---|---|---|
StringOrNumber | Erforderlich | Variant | Eine Zeichenfolge oder eine Zahl, die konvertiert werden soll. Es kann sich um eine Zeichenfolge, eine Gleitkommazahl oder eine ganze Zahl handeln. |
UnitsIn | Erforderlich | Variant | Maßeinheiten als Attribute für StringOrNumber. |
UnitsOut | Erforderlich | Variant | Maßeinheiten, in denen das Ergebnis ausgedrückt werden soll. |
Rückgabewert
Gleitkommawert mit doppelter Genauigkeit
Hinweise
Wenn string als Zeichenfolge übergeben wird, kann StringOrNumber die Formel oder prospektive Formel einer Zelle oder das Ergebnis oder das prospektive Ergebnis einer Zelle sein, die als Zeichenfolge ausgedrückt wird. Die ConvertResult-Methode wertet die Zeichenfolge aus und konvertiert das Ergebnis in die von UnitsOut angegebenen Einheiten. Die ConvertResult-Methode gibt einen Fehler zurück, wenn die Zeichenfolge Zellbezüge enthält.
StringOrNumber kann u. a. die folgenden Werte aufweisen:
- 1.7
- 3
- "2.5"
- "4,1 cm"
- "12 ft - 17 in + (12 cm / WURZEL(7))"
Die Argumente UnitsIn und UnitsOut können Zeichenfolgen wie "inches", "inch", "in." oder "i" sein. Zeichenfolgen können für alle unterstützten Microsoft Office Visio-Einheiten wie Zentimeter, Meter, Meilen usw. verwendet werden. Sie können auch jede der Einheitenkonstanten verwenden, die von der Visio-Typbibliothek in VisUnitCodes deklariert werden. Eine Liste der gültigen Einheiten ist auch unter About measure units of measure aufgeführt.
Wenn es sich bei StringOrNumber um eine Gleitkommazahl oder um eine ganze Zahl handelt, deklariert UnitsIn, welche Maßeinheit die ConvertResult-Methode für die Zahl annehmen soll. Übergeben Sie "" für interne Visio-Einheiten.
Wenn StringOrNumber eine Zeichenfolge ist, gibt UnitsIn an, wie das ausgewertete Ergebnis interpretiert werden soll, und wird nur verwendet, wenn das Ergebnis ein Skalar ist. Der Ausdruck "4 * 5 cm" ergibt beispielsweise 20 cm, was kein Skalar ist, sodass UnitsIn ignoriert wird. Der Ausdruck "4 * 5" ergibt 20, was ein Skalar ist und mithilfe der angegebenen UnitsIn interpretiert wird.
Das UnitsOut-Argument gibt an, in welchen Einheiten die zurückgegebene Zahl ausgedrückt werden soll. Wenn die Ergebnisse in den gleichen Einheiten wie der ausgewertete Ausdruck ausgedrückt werden sollen, übergeben Sie "NOCAST" oder visNoCast.
Beispiele, in denen eine Zeichenfolge angegeben ist:
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.
Beispiele, in denen eine Zahl angegeben ist:
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.
Beispiel
Mit dem folgenden Makro wird gezeigt, wie mit der ConvertResult-Methode der Abstand zwischen zwei Shapes in Zentimeter, Fuß, Yard und Meilen angegeben wird. Auf dem Zeichenblatt müssen zwei Shapes ausgewählt sein, um dieses Makro auszuführen.
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
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.