すべて表示
すべて表示
Shape オブジェクト
複数のオブジェクト Shape 複数のオブジェクト |
オートシェイプ、フリーフォーム、OLE オブジェクト、図などの描画オブジェクトを表します。
メモ 図形を表すオブジェクトは 3 つあります。スライドのすべての図形を表す Shapes コレクション、スライドの図形の指定したサブセットを表す ShapeRange コレクション (たとえば、ShapeRange オブジェクトでスライドの図形 1 と 4 を表したり、選択した図形をすべて表すことができます)、およびスライドの単一の図形を表す Shape オブジェクトです。いくつかの図形を同時に処理したり、選択範囲内の図形を処理するには、ShapeRange コレクションを使用します。単一の図形、または同時に複数の図形を処理する方法については、ここをクリックしてください。
使い方
次の方法について説明します。
- 名前または番号でインデックスが付けられたスライドの既存の図形を取得する
- スライドに新しく作成した図形を取得する
- 選択範囲内の図形を取得する
- スライドのスライド タイトルおよび他のプレースホルダを取得する
- コネクタの端に接続された図形を取得する
- プレゼンテーションのオートシェイプの既定値を取得する
- 新しく作成したフリーフォームを取得する
- グループ化した図形の中から単一の図形を取得する
- 新しくグループ化した図形を取得する
スライドの既存の図形を取得する
スライドの図形を表す Shape オブジェクトを取得するには、Shapes(index) プロパティを使用します。引数 index には、図形名またはインデックス番号を指定します。次の使用例は、myDocument
の図形 1 と "四角形 1" という名前の図形を水平方向に反転します。
Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Flip msoFlipHorizontal
myDocument.Shapes("四角形 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 = "赤い正方形"
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Line.DashStyle = msoLineDashDot
End With
スライドに新しく作成した図形を取得する
スライドに図形を追加し、新しく作成された図形を表す Shape オブジェクトを取得するには、Shapes コレクションの AddCallout、AddComment、AddConnector、AddCurve、AddLabel、AddLine、AddMediaObject、AddOLEObject、AddPicture、AddPlaceholder、AddPolyline、AddShape、AddTable、AddTextbox、AddTextEffect、AddTitle のいずれかのメソッドを使用します。
選択範囲内の図形を取得する
選択範囲内の図形を表す Shape オブジェクトを取得するには、Selection.ShapeRange(index) プロパティを使用します。引数 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
コネクタの端に接続された図形を取得する
コネクタに接続された図形の 1 つを表す Shape オブジェクトを取得するには、BeginConnectedShape または EndConnectedShape プロパティを使用します。
プレゼンテーションのオートシェイプの既定値を取得する
プレゼンテーションのオートシェイプの既定値を表す Shape オブジェクトを取得するには、DefaultShape プロパティを使用します。
新しく作成したフリーフォームを取得する
新しいフリーフォームの形を定義するには、BuildFreeform と AddNodes メソッドを使用します。フリーフォームを作成し、そのフリーフォームを表す Shape オブジェクトを取得するには、ConvertToShape メソッドを使用します。
グループ化した図形の中から単一の図形を取得する
グループ化した図形の中から単一の図形を表す Shape オブジェクトを取得するには、GroupItems(index) プロパティを使用します。引数 index には、グループ内の図形名またはインデックス番号を指定します。
新しくグループ化した図形を取得する
図形の範囲をグループ化し、新しく形成したグループを表す単一の Shape オブジェクトを取得するには、Group または Regroup メソッドを使用します。グループ化すると、他の図形を処理するときと同じようにグループを 1 つの図形として処理できます。