Shapes.Range メソッド (Project)

Shapes コレクション内の 図形 のサブセットを表す ShapeRange オブジェクトを返します。

構文

範囲 (インデックス)

表現Shapes オブジェクトを表す変数です。

パラメーター

名前 必須 / オプション データ型 説明
Index 必須 バリアント型 範囲に含める 1 つ以上の図形を指定します。 図形のインデックス番号の整数、図形の名前の文字列、または整数または文字列を含む配列を指定できます。
インデックス 必須 バリアント型
名前 必須 / オプション データ型 説明

戻り値

ShapeRange

Index パラメーターで指定される図形の範囲。

注釈

注:

[!メモ] Shape オブジェクトで実行できるほとんどの操作行うことも 1 つの図形を含む ShapeRange オブジェクトにします。 いくつかの操作では、複数の図形を含む ShapeRange オブジェクトに対して実行するとエラーを生成します。

Range プロパティを使用してレポート上の任意の数の図形を返すことができますが、既定値の Value プロパティを使用してコレクション内の 1 つの Shape を返す方が簡単です。 たとえば、 Shapes(1) より Shapes.Range(1) と記述すると効率的です。

Index パラメーターに整数または文字列の配列を指定するには、Array 関数を使用します。 たとえば、次のマクロは、名前で指定された 2 つの図形を選択します。

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

前のコードのような 2 つのテキスト ボックスを含むレポートを作成する場合、次のマクロはインデックス番号でテキスト ボックスを選択し、それぞれのテキスト ボックスに影を追加します。

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

関連項目

Shapes オブジェクトShapeRange オブジェクト

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。