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 のサポートおよびフィードバックを参照してください。