Partager via


Méthode Page.GetFormulasU (Visio)

Renvoie les formules de nombreuses cellules.

Syntaxe

expression. GetFormulasU( _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 GetFormulasU est similaire à la propriété FormulaU d’un objet Cell , sauf que vous pouvez l’utiliser pour obtenir les formules de plusieurs cellules à la fois, plutôt qu’une cellule à la fois. La méthode GetFormulasU 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 GetFormulasU est légèrement plus simple qu'avec la méthode GetResults.

Utilisez la méthode GetFormulasU pour obtenir des formules dans la syntaxe universelle de n’importe quel ensemble de cellules 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. SID_SRCStream() doit être un tableau unidimensionnel de 4 n entiers de 2 octets pour n>= 1. La méthode GetFormulasU interprète SID_SRCStream() 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 GetFormulasU, SetFormulas et autres, avec seulement de légères modifications dans le flux entre les opérations.

Si la méthode GetFormulasU 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 GetFormulasU 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 GetFormulasU. (Microsoft Visual Basic et Microsoft Visual Basic pour Applications s’en occupent pour vous.) La méthode GetFormulasU é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 GetFormulasU. Elle implique qu'une page active de Microsoft Office Visio comporte au moins trois formes. Elle utilise GetFormulasU 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 GetFormulasU de l’objet Page pour obtenir trois formules de cellule Le tableau d’entrée a quatre emplacements pour chaque cellule, comme il le ferait également pour les objets Master . Pour les objets Shape ou Style, seules trois cases par cellule suffisent (section, ligne et cellule).

 
Public Sub GetFormulasU_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.GetFormulasU 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.