Método Application.ConvertResult (Visio)
Convierte una cadena o un número en un número equivalente en otras unidades de medida.
Sintaxis
expresión. ConvertResult (StringOrNumber, UnitsIn, UnitsOut)
expresión Variable que representa un objeto Application.
Parámetros
Nombre | Obligatorio/opcional | Tipo de datos | Descripción |
---|---|---|---|
StringOrNumber | Obligatorio | Variant | Cadena o número que se va a convertir; puede ser una cadena, un número de punto flotante o un entero. |
UnitsIn | Obligatorio | Variant | Unidades de medida en que se supone que está StringOrNumber. |
UnitsOut | Obligatorio | Variant | Unidades de medida en las que se expresará el resultado. |
Valor devuelto
Doble
Comentarios
Si se pasa como cadena, StringOrNumber puede ser la fórmula o la posible fórmula de una celda, o el resultado o el posible resultado de una celda expresado en forma de cadena. El método ConvertResult evalúa la cadena y convierte el resultado en las unidades especificadas mediante UnitsOut. El método ConvertResult devuelve un error si la cadena contiene referencias a celdas.
Algunos valores posibles para StringOrNumber son:
- 1.7
- 3
- "2.5"
- "4,1 cm"
- "12 pies - 17 pda + (12 cm / SQRT(7))"
Los argumentos UnitsIn y UnitsOut pueden ser cadenas como "pulgadas", "pulgada", "in", o "i". Las cadenas se pueden usar para todas las unidades admitidas de Microsoft Office Visio, como centímetros, metros, millas, etc. También puede usar cualquiera de las constantes de unidades declaradas por la biblioteca de tipos de Visio en VisUnitCodes. También se muestra una lista de unidades válidas en Acerca de las unidades de medida.
Si StringOrNumber es un número de punto flotante o un entero, UnitsIn indica la unidad de medida en la que deberá expresarse el número creado por el método ConvertResult. Pase "" para indicar unidades de Visio internas.
Si StringOrNumber es una cadena, UnitsIn especifica cómo interpretar el resultado y sólo se usará si dicho resultado es un escalar. Por ejemplo, la expresión "4 * 5 cm" da como resultado 20 cm, que no es un escalar, por lo que UnitsIn no se tendrá en cuenta. La expresión "4 * 5" se evalúa como 20, que es escalar y se interpreta mediante el uso de unitsIn especificado.
El argumento UnitsOut especifica las unidades en las que se debe expresar el número devuelto. Si desea expresar el resultado en las mismas unidades que la expresión evaluada, pase "NOCAST" o visNoCast.
Ejemplos donde se especifica una cadena:
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.
Ejemplos donde se especifica un número:
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.
Ejemplo:
La macro siguiente muestra cómo utilizar el método ConvertResult para indicar la distancia existente entre dos formas en centímetros, pies, yardas y millas. Para ejecutar esta macro, deberá tener dos formas seleccionadas en la página.
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
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.