Méthode Master.GetResults (Visio)

Récupère les résultats ou les formules de nombreuses cellules.

Syntaxe

expression. GetResults( _SID_SRCStream()_ , _Flags_ , _UnitsNamesOrCodes()_ , _resultArray()_ )

Expression Variable qui représente un objet Master .

Parameters

Nom Requis/Facultatif Type de données Description
SID_SRCStream() Requis Integer Tableau qui identifie les cellules à interroger.
Flags Requis Integer Indicateurs influençant le type d'entrées renvoyées dans les résultats.
UnitsNamesOrCodes() Requis Variant Tableau d'unités de mesure dans lesquelles les résultats doivent être renvoyés.
resultArray() Requis Variant Paramètre sortant. Tableau qui reçoit les résultats ou les formules des cellules interrogées.

Valeur renvoyée

Aucune

Remarques

La méthode GetResults est similaire à la propriété Result de l'objet Cell, à la différence qu'elle peut être utilisée pour récupérer les résultats (valeurs) de plusieurs cellules à la fois, sans avoir à traiter les cellules une par une.

S'il s'agit d'un objet Master, il est possible d'utiliser la méthode GetResults pour obtenir les résultats d'un jeu de cellules quelconque dans n'importe quel jeu de formes de la forme de base.

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

{sheetID, sectionIdx, rowIdx, cellIdx }n

IDFeuille est la propriété ID de l'objet Shape dans la forme de base dont le résultat de cellule est souhaité.

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 à GetResults, SetResults et à des méthodes similaires, l'appelant ne devant apporter que de légères modifications au flux entre les appels.

Le paramètre Indicateurs indique le type de données dans lequel les résultats renvoyés doivent être exprimés. Sa valeur doit être l'une des suivantes :

Constante Valeur Description
visGetFloats 0 Résultats renvoyés sous forme de doubles (VT_R8).
visGetTruncatedInts 1 Résultats renvoyés sous la forme d'entiers longs tronqués (VT_I4).
visGetRoundedInts 2 Résultats renvoyés sous la forme d'entiers longs arrondis (VT_I4).
visGetStrings 3 Résultats renvoyés sous forme de chaînes (VT_BSTR).
visGetFormulas 4 Formules renvoyées sous forme de chaînes (VT_BSTR).
visGetFormulasU 5 Formules renvoyées en syntaxe universelle (VT_BSTR).

Le paramètre UnitsNamesOrCodes() est un tableau qui contrôle les unités de mesure dans lesquels les résultats individuels sont retournés. Chaque entrée du tableau peut être une chaîne telle que « pouces », « pouce », « po » ou « p ». Les chaînes peuvent être utilisées pour toutes les unités Visio prises en charge, telles que les centimètres, les mètres, les miles, etc. Vous pouvez également indiquer les unités souhaitées avec des constantes entières (visCentimeters, visInches, etc.) déclarées par la bibliothèque de types Visio. Notez que les valeurs spécifiées dans le tableau UnitsNamesOrCodes() n’ont aucun effet si Flags est visGetFormulas.

Si UnitsNamesOrCodes() n’est pas null, l’application s’attend à ce qu’il s’agit d’un tableau unidimensionnel de 1 <= variantes u. Chaque entrée peut être une chaîne, un code entier ou vide (nothing). Si l’entrée i 'ième est vide, le i 'ième résultat retourné est retourné dans les unités désignées par UnitsNamesOrCodes(j),j est l’index de l’entrée non vide précédente la plus récente. Ainsi, si vous souhaitez que toutes les valeurs soient renvoyées dans les mêmes unités, il suffit de transmettre un tableau NomsUnitésOuCodes() ne comportant qu'une entrée. S’il n’existe aucune entrée antérieure non vide, ou si aucun tableau UnitsNameOrCodes() n’est fourni, visNumber (0x20) est utilisé. Les unités internes (comme la propriété ResultIU d'un objet Cell) sont alors renvoyées.

Si la méthode GetResults réussit, les résultats renvoient un tableau à une dimension contenant n variables de type Variant indexées de zéro (0) à n-1. Les variables de type Variant renvoyées sont une fonction de Indicateurs. Le paramètre TableauRésultats() est un paramètre sortant attribué par la méthode GetResults, dont la propriété est retransmise à l'appelant. Ce dernier doit finalement exécuter SafeArrayDestroy sur le tableau renvoyé. Remarquez que SafeArrayDestroy a pour effet secondaire d'effacer les variables de type Variant auxquelles les entrées du tableau font référence et donc de désattribuer toute chaîne renvoyée par la méthode GetResults. (Microsoft Visual Basic et Visual Basic pour Applications s'en occupent pour vous.)

Exemple

L'exemple suivant indique comment utiliser la méthode GetResults. Il implique qu'une page active comporte au moins trois formes. Il utilise la méthode GetResults 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 GetResults de l'objet Page pour récupérer 3 formules de cellule. Le tableau d'entrée comporte 4 cases par cellule, comme si vous utilisiez des objets Master. Pour les objets Shape ou Style, seules 3 cases par cellule sont nécessaires (section, ligne et cellule).

 
Public Sub GetResults_Example() 
 
 On Error GoTo HandleError 
 
 Dim intCounter As Integer 
 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 
 
 'Get first two values in inches. The second element in 
 'the units array is left uninitialized (empty) because we 
 'want the second result in the same units as the first 
 'result. The third result is initialized in degrees. Note that 
 'units can be expressed as a string or an integer constant. 
 Dim avarUnits(1 To 3) As Variant 
 avarUnits(1) = "in." 
 avarUnits(3) = visDegrees 
 
 'Return results of cells as an array of floating point numbers. 
 Dim avarResults() As Variant 
 ActivePage.GetResults aintSheetSectionRowColumn, visGetFloats, _ 
 avarUnits, avarResults 
 
 For intCounter = 0 To 3 
 Debug.Print avarResults(intCounter) 
 Next 
 
 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.