エクセルのシート上にあるグループ化した図(オブジェクト)をマウスで選択するのは簡単ですが、VBAで選択する方法はどうすればよいのでしょうか?
今回は、グループ化した図(オブジェクト)を選択する方法について徹底的に説明していきます。
グループ化した図(オブジェクト)を選択するには?
グループ化した図の名前を付ける
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
楕円と三角のオブジェクトがグループ化され、さらに選択されます。
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:クリックしたオブジェクトの名前の取得方法
コメント