Excel VBA入門 その96:グループ化したオブジェクトを選択する方法

エクセルVBA VBA



エクセルのシート上にあるグループ化した図形オブジェクトをマウスで選択するのは簡単ですが、VBAで選択する方法はどうすればよいのでしょうか?

今回は、グループ化したオブジェクトを選択する方法について徹底的に説明していきます。



グループ化したオブジェクトを選択するには?

2つのオブジェクトをグループ化し、さらに選択するには?

グループ化したオブジェクトの名前を付ける

VBAでオブジェクト(図形)を扱う場合は、オブジェクトの名前を指定するのが一番確実です。

それはグループ化したオブジェクトについても有効な方法です。

つまり、グループ化したオブジェクトに名前を付けて、その名前のオブジェクトを選択してやれば良いのです。

そのためにはグループ化すると同時にオブジェクトの名前を付けます。

以下のサンプルコードで解説していきます。

グループ化したオブジェクトを選択するVBA

以下のVBAは、シート上にある楕円と三角のオブジェクトをグループ化し、その後にグループ化したオブジェクトを選択しています。

Sub グループ化したオブジェクトを選択()
    Dim SN(0 To 1) As String   'オブジェクトの名前を入れるための変数
    
    SN(0) = ActiveSheet.Shapes(1).Name 'オブジェクト1の名前を格納する 
    SN(1) = ActiveSheet.Shapes(2).Name 'オブジェクト2名前を格納する
        
    ActiveSheet.Shapes.Range(SN).Group.Name = "group1" 
   ' ↑オブジェクトをグループ化し、「group1」という名前を付ける
    ActiveSheet.Shapes("group1").Select  'group1を選択する
End Sub

楕円と三角のオブジェクトがグループ化され、さらに選択されます。

2つのオブジェクトをグループ化し、さらに選択している

ActiveSheet.Shapes.Range(SN).Group.Name = “group1”

グループ化したオブジェクトを名前で選択できるように、グループ化すると同時に「group1」という名前を付けてしまいます。

ActiveSheet.Shapes(“group1”).Select

グループ化したオブジェクトの名前「group1」をSelectすれば、選択されます。

もし、あらかじめ各々のオブジェクト名が判明している場合には、以下のようなコードでもOKです。

Sub グループ化したオブジェクトを選択2()
    ActiveSheet.Shapes.Range(Array("楕円1", "三角1")).Group.Name = "group1"
    ActiveSheet.Shapes("group1").Select
End Sub

オブジェクトの名前の取得方法は、以下の記事を参考にしてみてください。

Excel VBA入門 その93:クリックしたオブジェクトの名前の取得方法

コメント

タイトルとURLをコピーしました