動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル
「excel vba グループ化 図形 選択」
「エクセル マクロ グループ化した オブジェクト 選択」
といった検索が、このサイト『インストラクターのネタ帳』で行われたことに気づきました。
Excel VBAで、グループ化されている図形・オブジェクトを選択するには、どのようなコードを書けばいいのかを調べていらしたのでしょうか。
グループ化されている図形を選択するサンプルマクロ
以下のマクロを実行すると、アクティブシート上に存在するグループ化図形が選択されます。
Sub グループ化されている図形を選択する()
Range("A1").Select
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoGroup Then
shp.Select Replace:=False
End If
Next
End Sub
Range("A1").Select
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoGroup Then
shp.Select Replace:=False
End If
Next
End Sub
サンプルマクロで行っている処理
アクティブシート上にある全図形に対してFor Each~Nextループを回して、
Dim shp As Shape For Each shp In ActiveSheet.Shapes
Shape.TypeプロパティがmsoGroupだったときに、Shape.Selectメソッドの引数ReplaceにFalseを指定して選択を行っています。
If shp.Type = msoGroup Then shp.Select Replace:=False
選択されている図形がグループ化されているかどうかを判定するには少々面倒ですが、For Each~Nextループ内で順番に調べるのであれば、上記のようなコードで済みます。
グループ化されていない図形が選択された状態で以下の処理に入ると、
Dim shp As Shape For Each shp In ActiveSheet.Shapes If shp.Type = msoGroup Then shp.Select Replace:=False
そのグループ化されていない図形も含んで、グループ化された図形が選択されます。
この状態を回避するために事前に以下の処理を入れています。
Range("A1").Select
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » Excel VBAでグループ化されている図形・オブジェクトを選択する