ShapeRange オブジェクト (Word)

文書の図形の集合である図形範囲を表します。 図形範囲には、文書内の 1 つの図形を含めたり、文書内のすべての図形を含めることができます。

注釈

文書内のすべての図形または選択範囲のすべての図形の中から選択した任意の図形を含め、図形範囲を作成できます。 たとえば、ドキュメント、ドキュメントで選択したすべての図形、または文書内のすべてのフリー フォーム図形の最初の 3 つの図形を含む ShapeRange コレクションを作成できます。 [!メモ] 図形 オブジェクトを使用して行うことがでくほとんどの操作を行うことも 1 つだけ図形を含む ShapeRange オブジェクトで。 いくつかの操作では、複数の図形を含む ShapeRange オブジェクトに対して実行されるときにエラーが発生します。

Range (index) を使用して、index は図形の名前またはインデックス番号、または図形の名前またはインデックス番号を含む配列を使用して、ドキュメント上の図形のセットを表す ShapeRange コレクションを取得します。 Visual Basic の Array 関数を使用して、名前またはインデックス番号の配列を作成します。 次の使用例は、現在の文書内の 1 番目と 3 番目の図形に塗りつぶしのパターンを設定します。

ActiveDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _ 
 msoPatternHorizontalBrick

次の使用例は、作業中の文書で Oval 4 と Rectangle 5 という名前の図形を選択します。

ActiveDocument.Shapes.Range(Array("Oval 4", "Rectangle 5")).Select

Range メソッドを使用して、必要な数の図形を取得することができますが、コレクションのメンバーを 1 つだけ取得する場合は、 Item メソッドを使用した方が簡単です。 たとえば、 Shapes(1) より Shapes.Range(1) と記述すると効率的です。

選択範囲内の図形を表す Shape オブジェクトを取得するには、ShapeRange (index) を使用します。index は名前またはインデックス番号です。 次の使用例は、選択範囲に少なくとも 1 つの図形が含まれている場合、選択範囲の最初の図形に塗りつぶしを設定します。

Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

次の使用例は、作業中の文書の最初のセクションのすべての図形を選択します。

Set myRange = ActiveDocument.Sections(1).Range 
myRange.ShapeRange.Select

図形の集合の位置を図形どうしの相対位置または文書を基準にして決めるには、 AlignDistribute 、または ZOrder のいずれかのメソッドを使用します。

図形範囲を基にして形成される単一の図形を作成して操作するには、 GroupRegroup 、または UnGroup のいずれかのメソッドを使用します。 Shape オブジェクトの GroupItems プロパティは、単一の図形を形成するためにグループ化されたすべての図形を表す GroupShapes オブジェクトを返します。

図形での操作をマクロに記録する場合は、常に ShapeRange プロパティが使用されます。

注:

[!メモ] ShapeRange オブジェクトには、 InlineShape オブジェクトは含まれません。

メソッド

プロパティ

関連項目

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

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