VBA|グループ化した画像を選択する方法

エクセル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をコピーしました