Partager via


Méthode Page.GetFormulas (Visio)

Renvoie les formules de nombreuses cellules.

Syntaxe

expression. GetFormulas( _SID_SRCStream()_ , _formulaArray()_ )

Expression Variable qui représente un objet Page .

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.

S'il s'agit d'objets Page, il est possible d'utiliser la méthode GetFormulas pour obtenir les formules d'un jeu de cellules quelconque dans n'importe quel jeu de formes de la page ou de la forme de base.

SID_FluxSRC() est un tableau d'entiers de 2 octets. Pour les objets Page , SID_SRCStream() doit être un tableau unidimensionnel de 4 n entiers de 2 octets pour n>= 1. La méthode GetFormulas interprète SID_FluxSRC() comme suit :

{sheetID, sectionIdx, rowIdx, cellIdx}n

IDFeuille est la propriété ID de l'objet Shape dans la page ou la forme de base dont la formule de cellule est souhaitée.

Remarque

Si le sheetID d’une entrée est visInvalShapeID (-1) ou si l’octet inférieur de sectionIdx est visSectionInval (255), l’entrée est ignorée et une variante vide est retournée dans l’entrée du tableau de résultats correspondante. Le même tableau SID_FluxSRC peut ainsi être utilisé par plusieurs appels des méthodes GetFormulas, SetFormulas et autres, avec seulement de légères modifications dans le flux entre les opérations.

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.