Shape オブジェクト (PowerPoint)

オートシェイプ、フリーフォーム、OLE オブジェクト、図などの描画オブジェクトを表します。

解説

注意

図形を表す 3 つのオブジェクトがあります。 Shapes コレクションは、ドキュメント上のすべての図形を表します。 ShapeRange コレクションは、ドキュメント上の図形の指定されたサブセットを表します ( たとえば、ShapeRange オブジェクトは、ドキュメント上の図形 1 と 4 を表したり、ドキュメント上のすべての選択した図形を表したりできます)。ドキュメント上 の 1 つの図形を表す Shape オブジェクトを指定します。 複数の図形を同時に、または選択範囲内の図形で作業する場合は 、ShapeRange コレクションを使用 します。

単一の図形または複数の図形を同時に操作する方法の概要については、「図形の操作 (図面オブジェクト)」 を参照してください

次の使用例は、次の方法を示しています。

  • 名前または番号でインデックスが付けられたスライドの既存の図形を取得する

  • スライドに新しく作成した図形を取得する

  • 選択範囲内の図形を取得する

  • スライドのスライド タイトルおよび他のプレースホルダーを取得する

  • コネクタの端に接続された図形を取得する

  • プレゼンテーションのオートシェイプの既定値を取得する

  • 新しく作成したフリーフォームを取得する

  • グループ化した図形の中から単一の図形を取得する

  • 新しくグループ化した図形を取得する

スライド 上の図形を 表す Shape オブジェクトを取得するには、Shape ( index ) を使用します。index は図形名またはインデックス番号です。 次の使用例は、myDocument の Rectangle 1 という名前の図形 1 を水平に反転します。

Set myDocument = ActivePresentation.Slides(1)

myDocument.Shapes(1).Flip msoFlipHorizontal

myDocument.Shapes("Rectangle 1").Flip msoFlipHorizontal

Shapes コレクションに図形を追加すると、各図形には既定の名前が割り当てられます。 図形に任意の名前を付けるには、Name プロパティを使用します。 次の使用例は 、myDocument に四角形を追加し、赤の四角形という名前を付け、前景色と線のスタイルを設定します。

Set myDocument = ActivePresentation.Slides(1)

With myDocument.Shapes.AddShape(Type:=msoShapeRectangle, _

        Top:=144, Left:=144, Width:=72, Height:=72)

    .Name = "Red Square"

    .Fill.ForeColor.RGB = RGB(255, 0, 0)

    .Line.DashStyle = msoLineDashDot

End With

スライドに図形を追加し、新しく作成した図形を表す Shape オブジェクトを 取得するには 、Shapes コレクションの次のいずれかのメソッドを使用 します。

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

ActiveWindow.Selection.ShapeRange(1).Fill _

    .ForeColor.RGB = RGB(255, 0, 0)

既存のスライド タイトルを表す Shape オブジェクトを取得するには、Shapes.Title を使用します。 まだタイトルがないスライドにタイトルを追加し、新しく追加したタイトルを表す Shape オブジェクトを取得するには、Shapes.AddTitle を使用します。 プレースホルダー を表す Shape オブジェクトを取得するには 、Shapes.Placeholders (index) を使用します。index はプレースホルダーのインデックス番号です。 スライドの図形の重ね合わせの順序が同じで、スライド 1 にタイトルが含まれている場合、次の 3 つのステートメントでは、同じ結果が得られます。

ActivePresentation.Slides(1).Shapes.Title _

    .TextFrame.TextRange.Font.Italic = True

ActivePresentation.Slides(1).Shapes.Placeholders(1) _

    .TextFrame.TextRange.Font.Italic = True

ActivePresentation.Slides(1).Shapes(1).TextFrame _

    .TextRange.Font.Italic = True

コネクタによって接続 されている図形 のいずれかを表す Shape オブジェクトを取得するには 、BeginConnectedShape プロパティまたは EndConnectedShape プロパティを使用 します。

プレゼンテーションの既定 の図形 を表す Shape オブジェクトを取得するには 、DefaultShape プロパティを使用 します。

BuildFreeform メソッドと AddNodes メソッドを使用して、新しいフリーフォームのジオメトリを定義し 、ConvertToShape メソッドを使用してフリーフォームを作成し、それを表す Shape オブジェクトを返します。

グループ化された図形の 1つの図形を表す Shape オブジェクトを取得するには 、GroupItems (index) を使用します。index は、グループ内の図形名またはインデックス番号です。

Group メソッド または Regroup メソッドを使用 して、図形の範囲をグループ化し、新しく形成されたグループを表す 1 つの Shape オブジェクトを取得します。 グループを形成すると、他の図形を処理するのと同じようにグループを処理できます。

メソッド

プロパティ

関連項目

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

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