Shapes オブジェクト (Word)
Shape オブジェクトのコレクションであり、文書内のすべての図形、または文書内のすべてのヘッダーとフッターに含まれるすべての図形を表します。 各 Shape オブジェクトは、オートシェイプ、フリーフォーム、OLE オブジェクト、画像などの描画レイヤーのオブジェクトを表します。
文書のオートシェイプだけを処理したり、選択した図形だけを処理する場合など、文書の図形のサブセットを処理する場合は、処理する図形を含む ShapeRange コレクションを作成する必要があります。
Shapes コレクションを取得するには、 Shapes プロパティを使用します。 次の使用例は、作業中の文書のすべての図形を選択します。
ActiveDocument.Shapes.SelectAll
注意
[!メモ] 文書のすべての図形に対して、削除やプロパティの設定などの特定の操作を同時に行う場合、 Range メソッドを使用して Shapes コレクションのすべての図形を含む ShapeRange オブジェクトを作成します。次に、 ShapeRange オブジェクトに対して適切なプロパティまたはメソッドを使用します。
Shapes コレクションの次のいずれかのメソッドを使用します。Add3DModel、AddCallout、AddCurve、AddLabel、AddLine、AddOleControl、AddOleObject、AddPolyline、AddShape、AddTextbox、AddTextbox、AddTextEffect、または BuildFreeForm を使用して、新しく作成された図形を表す Shape オブジェクトをドキュメントに追加します。 次の例では、作業中のドキュメントに四角形を追加します。
ActiveDocument.Shapes.AddShape msoShapeRectangle, 50, 50, 100, 200
1 つの Shape オブジェクトを取得するには、 Shapes (Index) を使用します (Index には、名前またはインデックス番号を指定)。 次の使用例は、作業中の文書の最初の図形を左右に反転します。
ActiveDocument.Shapes(1).Flip msoFlipHorizontal
次の使用例は、作業中の文書の "Rectangle 1" という名前の図形を左右に反転します。
ActiveDocument.Shapes("Rectangle 1").Flip msoFlipHorizontal
各図形には、作成したときに、既定の名前が付けられます。 たとえば、ドキュメントに 3 つの異なる図形を追加すると、"Rectangle 2"、"TextBox 3"、"Oval 4" という名前になる場合があります。図形にわかりやすい名前を付けるには、 Name プロパティを設定します。
Shapes コレクションには、 InlineShape オブジェクトは含まれません。 InlineShape オブジェクトは、文字と同じように扱われ、本文の行の中に文字として配置されます。 Shape オブジェクトは、文字列範囲にアンカーが配置されていますが、位置が固定されていないので、そのページの中のどこにでも配置することができます。 ConvertToInlineShape メソッドと ConvertToShape メソッドを使用して、ある型から他方の型に図形を変換します。 位置を固定した図形に変換できるのは、図、OLE オブジェクト、および ActiveX コントロールだけです。
文書の Shapes コレクションの Count プロパティを使用すると、本文だけに含まれている図形の数を取得できます。 すべてのヘッダーとフッターに含まれている図形の数を取得するには、いずれかの HeaderFooter オブジェクトで Shapes コレクションを使用します。
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。