Partager via


Shapes.Range, méthode (Project)

Renvoie un objet ShapeRange qui représente un sous-ensemble de formes dans la collection Shapes .

Syntaxe

expression. Plage (index)

expression Variable qui représente un objet Shapes.

Paramètres

Nom Requis/Facultatif Type de données Description
Index Obligatoire Variant Spécifie une ou plusieurs formes à inclure dans la plage. Il peut s’agir d’un entier pour le numéro d’index d’une forme, d’une chaîne pour le nom d’une forme ou d’un tableau qui contient des entiers ou des chaînes.
Index Obligatoire Variant
Nom Requis/Facultatif Type de données Description

Valeur renvoyée

ShapeRange

Plage de formes spécifiée par le paramètre Index .

Remarques

Remarque

[!REMARQUE] La plupart des opérations que vous pouvez faire avec un objet Shape peuvent également être effectuées avec un objet ShapeRange qui contienne une seule forme. Certaines opérations sont effectuées sur un objet ShapeRange qui contient plusieurs formes, génère une erreur.

Bien que vous puissiez utiliser la propriété Range pour renvoyer un nombre quelconque de formes dans un état, il est plus simple d’utiliser la propriété Value par défaut pour renvoyer une seule forme dans la collection. Par exemple, Shapes(1) est plus simple que Shapes.Range(1).

Pour spécifier un tableau d’entiers ou de chaînes pour le paramètre Index , vous pouvez utiliser la fonction Array . Par exemple, la macro suivante sélectionne deux formes spécifiées par nom.

Sub SelectShapeRange()
    Dim arShapes() As Variant
    Dim oShapeRange As ShapeRange
    
    arShapes = Array("TextBox 4", "TextBox 5")
    Set oShapeRange = ActiveProject.Reports("Table Tests").Shapes.Range(arShapes)
    oShapeRange.Select
End Sub

Exemple

Si vous créez un rapport comportant deux zones de texte comme dans le code précédent, la macro suivante sélectionne les zones de texte par numéro d’index, puis ajoute une ombre à chacune d’elles.

Sub AddShadow2Shapes()
    Dim oReports As Reports
    Dim oReport As Report
    Dim oShapeRange As ShapeRange
    Dim reportName As String
    Dim arShapes() As Variant

    arShapes = Array(3, 4)

    reportName = "Table Tests"
    Set oReports = ActiveProject.Reports
    
    If (oReports.IsPresent(reportName)) Then
        ' Make the report the active view.
        oReports(reportName).Apply
        
        Set oReport = oReports(reportName)
        
        Set oShapeRange = oReport.Shapes.Range(arShapes)
        
        oShapeRange.Select
        oShapeRange.Shadow.Type = msoShadow1
    End If
End Sub

Voir aussi

Shapes, objetShapeRange, objet

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.