Shapes オブジェクト (Excel)Shapes object (Excel)

指定されたシートのすべての**Shape** オブジェクトのコレクションです。A collection of all the Shape objects on the specified sheet.

注釈Remarks

Shape オブジェクトは、オートシェイプ、フリーフォーム、OLE オブジェクト、画像など、描画レイヤーのオブジェクトを表します。Each Shape object represents an object in the drawing layer, such as an AutoShape, freeform, OLE object, or picture.

注意

文書上のオートシェイプのみに対して、または選択した図形だけを対象として、図形のサブセットを操作する場合は、操作する図形を含む**ShapeRange** コレクションを作成する必要があります。If you want to work with a subset of the shapes on a document—for example, to do something to only the AutoShapes on the document or to only the selected shapes—you must construct a ShapeRange collection that contains the shapes that you want to work with.

Example

Shapesコレクションを取得するのにには、 Worksheetオブジェクトの**shapes** プロパティを使用します。Use the Shapes property of the Worksheet object to return the Shapes collection. 次の使用例は、 _myDocument_のすべての図形を選択します。The following example selects all the shapes on myDocument.

注意

シート上のすべての図形に対して、削除やプロパティの設定などの操作を同時に行う場合は、すべての図形を選択し、次に、選択範囲のshaperangeプロパティを使用して、シートのすべての図形を含むshaperangeオブジェクトを作成します。を選び、 ShapeRangeオブジェクトに適切なプロパティまたはメソッドを適用します。If you want to do something (like delete or set a property) to all the shapes on a sheet at the same time, select all the shapes, and then use the ShapeRange property on the selection to create a ShapeRange object that contains all the shapes on the sheet, and then apply the appropriate property or method to the ShapeRange object.

Set myDocument = Worksheets(1) 
myDocument.Shapes.SelectAll

1つのshapeオブジェクトを取得するのにには、 Shapes (index) を使用します。_引数 index_には、図形の名前またはインデックス番号を指定します。Use Shapes (index), where index is the shape's name or index number, to return a single Shape object. 次の使用例は、 _myDocument_の1番目の図形の既定の影を塗りつぶしに設定します。The following example sets the fill to a preset shade for shape one on myDocument.

Set myDocument = Worksheets(1) 
myDocument.Shapes(1).Fill.PresetGradient _ 
 msoGradientHorizontal, 1, msoGradientBrass

Shapesコレクションのサブセットを表すShapeRangeコレクションを取得するには、Range (index) を使用します。_引数 index_には、図形の名前またはインデックス番号、あるいは図形の名前またはインデックス番号の配列を指定します。Use Range (index), where index is the shape's name or index number or an array of shape names or index numbers, to return a ShapeRange collection that represents a subset of the Shapes collection. 次の使用例は、 _myDocument_の1番目と3番目の図形に塗りつぶしのパターンを設定します。The following example sets the fill pattern for shapes one and three on myDocument.

Set myDocument = Worksheets(1) 
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned _ 
 msoPatternHorizontalBrick

シート上の ActiveX コントロールには、次の2つの名前があります。これは、シートを表示するときに [名前] ボックスに表示されるコントロールを含む図形の名前です。また、コントロールのコード名は、Propertie で (名前) の右側のセルに表示されます。s ウィンドウAn ActiveX control on a sheet has two names: the name of the shape that contains the control, which you can see in the Name box when you view the sheet, and the code name for the control, which you can see in the cell to the right of (Name) in the Properties window. シートにコントロールを最初に追加すると、図形の名前とコード名が一致します。When you first add a control to a sheet, the shape name and code name match. ただし、図形名またはコード名を変更しても、もう一方は一致するように自動的に変更されません。However, if you change either the shape name or code name, the other isn't automatically changed to match.

コントロールのイベント プロシージャの場合は、コントロールのコード名を使用します。You use the code name of a control in the names of its event procedures. Shapes または OLEObjects コレクションからコントロールを取得する場合は、コード名ではなく、図形の名前を使用してコントロールを指定します。However, when you return a control from the Shapes or OLEObjects collection for a sheet, you must use the shape name, not the code name, to refer to the control by name. たとえば、コード名および図形の名前が既定の CheckBox1 というチェック ボックスを追加したと仮定します。For example, assume that you add a check box to a sheet and that both the default shape name and the default code name are CheckBox1. コントロールの [プロパティ] ウィンドウの [(名前)] に「chkFinished」と入力してコード名を変更した場合は、イベント プロシージャ名には必ず chkFinished を使用しますが、Shapes または OLEObject コレクションからコントロールを取得する場合は、次のように CheckBox1 を使用する必要があります。If you then change the control code name by typing chkFinished next to (Name) in the Properties window, you must use chkFinished in event procedures names, but you still have to use CheckBox1 to return the control from the Shapes or OLEObject collection, as shown in the following example.

Private Sub chkFinished_Click() 
 ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1 
End Sub

メソッドMethods

プロパティProperties

関連項目See also

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.