Méthode Style.GetFormulas (Visio)
Renvoie les formules de nombreuses cellules.
Syntaxe
expression. GetFormulas
( _SRCStream()_
, _formulaArray()_
)
Expression Variable qui représente un objet Style .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
SID_SRCStream() | Requis | Integer | Flux qui identifie les cellules à interroger. |
formulaArray() | Requis | Variant | Paramètre sortant. Tableau qui reçoit les formules des cellules interrogées. |
Valeur renvoyée
Aucune
Remarques
La méthode GetFormulas est comparable à la propriété Formula d'un objet Cell ; vous pouvez cependant l'utiliser pour récupérer simultanément les formules de nombreuses cellules, au lieu de traiter les cellules une par une. La méthode GetFormulas est une dérivation de la méthode GetResults permettant d'obtenir les formules ou résultats de cellule. La préparation d'un appel de méthode GetFormulas est légèrement plus simple qu'avec la méthode GetResults.
Pour les objets Style, vous pouvez utiliser la méthode GetFormulas pour obtenir les formules d'un jeu de cellules quelconque.
SID_FluxSRC() est un tableau d'entiers de 2 octets. Pour les objets Style , SID_SRCStream() doit être un tableau unidimensionnel de 3 n entiers de 2 octets pour un certain n>= 1. La méthode GetFormulas interprète le flux comme suit :
{sectionIdx, rowIdx, cellIdx}n
où IdxSection est l'index de section de la cellule souhaitée, IdxLigne est son index de ligne et IdxCellule son index de cellule.
Si la méthode GetFormulas réussit, l'argument TableauFormules() renvoie un tableau à une dimension de n variants indexés de 0 à n - 1. Chaque variant renvoie une formule sous forme de chaîne. TableauFormules() est un paramètre sortant attribué par la méthode GetFormulas dont la propriété est retransmise à l'appelant. Ce dernier doit finalement exécuter la procédure SafeArrayDestroy sur le tableau renvoyé. Notez que la procédure SafeArrayDestroy a pour effet secondaire d'effacer les variants référencés par les entrées du tableau et donc de désattribuer toute chaîne renvoyée par la méthode GetFormulas. (Microsoft Visual Basic et Microsoft Visual Basic pour Applications s’en occupent pour vous.) La méthode GetFormulas échoue si formulaArray() a la valeur null.
Remarque
À partir de Microsoft Office Visio 2000, vous pouvez utiliser des noms locaux et universels pour vous reporter aux formes, formes de base, documents, pages, lignes, modules complémentaires, cellules, liens hypertexte, styles, polices, raccourcis de formes de base, objets UI et aux calques Visio. Lorsqu'un utilisateur nomme une forme, par exemple, il définit un nom local. À partir de Microsoft Office Visio 2003, la feuille de calcul ShapeSheet affiche uniquement les noms universels des formules et valeurs de cellules. (Dans les versions antérieures, les noms universels n’étaient pas visibles dans l’interface utilisateur.)
Si vous êtes développeur, vous pouvez utiliser les noms universels dans un programme lorsque vous ne voulez pas modifier un nom chaque fois qu'une solution est localisée. Utilisez la méthode GetFormulas pour obtenir plusieurs formules lorsque vous utilisez la syntaxe locale. Utilisez la méthode GetFormulasU pour obtenir plusieurs formules lorsque vous utilisez la syntaxe universelle.
Exemple
La macro suivante indique comment utiliser la méthode GetFormulas. Elle implique qu’une page active de Microsoft Visio comporte au moins trois formes. Elle utilise GetFormulas pour obtenir la largeur de la forme 1, la hauteur de la forme 2 et l’angle de la forme 3.
Cet exemple utilise la méthode GetFormulas de l'objet Page pour obtenir trois formules de cellule. Le tableau d'entrée comporte quatre cases par cellule, comme si vous utilisiez des objets Master. Pour les objets Shape ou Style, seules trois cases par cellule suffisent (section, ligne et cellule).
Public Sub GetFormulas_Example()
On Error GoTo HandleError
Dim aintSheetSectionRowColumn(1 To (3 * 4)) As Integer
aintSheetSectionRowColumn(1) = ActivePage.Shapes(1).ID
aintSheetSectionRowColumn(2) = visSectionObject
aintSheetSectionRowColumn(3) = visRowXFormOut
aintSheetSectionRowColumn(4) = visXFormWidth
aintSheetSectionRowColumn(5) = ActivePage.Shapes(2).ID
aintSheetSectionRowColumn(6) = visSectionObject
aintSheetSectionRowColumn(7) = visRowXFormOut
aintSheetSectionRowColumn(8) = visXFormHeight
aintSheetSectionRowColumn(9) = ActivePage.Shapes(3).ID
aintSheetSectionRowColumn(10) = visSectionObject
aintSheetSectionRowColumn(11) = visRowXFormOut
aintSheetSectionRowColumn(12) = visXFormAngle
'Return the formulas of the cells.
Dim avarFormulaArray() As Variant
ActivePage.GetFormulas aintSheetSectionRowColumn, avarFormulaArray
Debug.Print "Shape 1 width is "; avarFormulaArray(0)
Debug.Print "Shape 2 height is "; avarFormulaArray(1)
Debug.Print "Shape 3 angle is "; avarFormulaArray(2)
Exit Sub
HandleError:
MsgBox "Error"
Exit Sub
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.