Méthode Application.ConvertResult (Visio)

Convertit une chaîne ou un nombre en un nombre équivalent dans différentes unités de mesure.

Syntaxe

expression. ConvertResult (StringOrNumber, UnitsIn, UnitsOut)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
StringOrNumber Requis Variant Chaîne ou nombre à convertir ; peut être une chaîne, un nombre à virgule flottante ou un entier.
UnitsIn Requis Variant Unités de mesure à attribuer à ChaîneOuNombre.
UnitsOut Requis Variant Unités de mesure dans lesquelles le résultat doit être exprimé.

Valeur renvoyée

Double

Remarques

S'il est transmis sous forme de chaîne, l'argument ChaîneOuNombre peut être soit la formule ou la formule prospective d'une cellule soit le résultat ou le résultat prospectif d'une cellule exprimée sous forme de chaîne. La méthode ConvertResult évalue la chaîne et convertit le résultat dans les unités désignées par UnitésSortie. La méthode ConvertResult renvoie une erreur si la chaîne contient des références de cellule.

Valeurs pouvant figurer dans ChaîneOuNombre :

  • 1.7
  • 3
  • "2.5"
  • « 4,1 cm »
  • « 12 pd - 17 po + (12 cm / SQRT(7)) »

Les arguments UnitésEntrée et UnitésSortie peuvent être des chaînes telles que « pouces », « pouce », « po » ou « p ». Toutes les unités prises en charge par Microsoft Office Visio, comme le centimètre, le mètre, le mile, etc., peuvent être utilisées. Vous pouvez également utiliser des constantes d’unités déclarées par la bibliothèque de types de Visio dans VisUnitCodes. Une liste d’unités valides est également répertoriée dans À propos des unités de mesure.

Si ChaîneOuNombre est un nombre à virgule flottante ou un entier, UnitésEntrée déclare l'unité de mesure qui doit lui être associée par la méthode ConvertResult. Transmettez "" pour indiquer des unités internes de Visio.

Si ChaîneOuNombre est une chaîne, l'argument UnitésEntrée indique comment interpréter le résultat calculé, et ce, uniquement si ce dernier est un scalaire. Par exemple, l’expression « 4 * 5 cm » prend la valeur 20 cm, ce qui n’est pas un scalaire, de sorte que UnitsIn est ignoré. L’expression « 4 * 5 » prend la valeur 20, qui est une scalaire et est interprétée à l’aide de la valeur UnitsIn spécifiée.

L'argument UnitésSortie spécifie les unités de mesure dans lesquelles le nombre renvoyé doit être exprimé. Si vous souhaitez que les résultats soient exprimés dans les mêmes unités que l'expression calculée, transmettez « NOCAST » ou visNoCast.

Exemples dans lesquels une chaîne est définie :

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. 


Exemples dans lesquels un nombre est défini :

 
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. 

Exemple

La macro suivante indique comment utiliser la méthode ConvertResult pour rapporter la distance entre deux formes en centimètres, pieds, yards et miles. Pour pouvoir exécuter cette macro, vous devez avoir sélectionné deux formes sur votre page.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.