VBA|ワークシート上の特定の図形を選択する方法

エクセルVBA VBAで画像・図・グラフの操作



VBAでセルの選択方法や操作方法がわかっても、ワークシートに貼った図形(オートシェイプ)については同じようにいかないくて悩んでいる人も多いはずです。
ワークシートに貼った図形の選択方法について説明します。



ワークシート上の特定の図形の選択方法

ワークシート上の特定の図形を選択するには、shapesプロパティを使って参照します。
その前に、特定の図形を参照するためには

  • 図形の「名前」で参照する。
  • 図形の「インデックス番号」で参照する。

の2種類があります。

図形の名前で選択する方法

上のシート例で、一番左のひし形を選択してみましょう。

Sub 図形の名前で選択()
  ActiveSheet.Shapes("ひし形 1").Select
End Sub

「ひし形1」は図形の名前です。
図形の名前の確認方法は、ワークシート上にある図形を直接クリックします。
画面左上のウインドウに図形の名前が表示されます。

インデックス番号で選択する方法

図形のインデックス番号は、ワークシート上に図形が生成された順や重なりに応じて付される、図形の管理番号のようなものです。
インデックス番号1番の図形を選択してみましょう。

Sub インデックス番号で選択()
   ActiveSheet.Shapes(1).Select
End Sub

Shapes(インデックス番号) という書き方をします。
インデックス番号の確認方法は、
ホーム → 検索と選択 → オブジェクトの選択と表示
で確認できます。


一番下のオブジェクト(例ではひし形1)がインデックス番号1で、下から順にオブジェクト番号が昇順(上に行くほど番号が大きい)で付されています。
ちなみに、右欄の「選択」ウインドウに表示されているオブジェクト名(図形名)をドラッグして順番を入れ替えてみると、それに伴ってワークシート上の図形の重なりが変化します。
それに伴って、インデックス番号も、「選択」ウインドウの下から昇順に番号が付け直されます。
つまり、インデックス番号は一定ではなく、図形の重なりや図形の数によって変化する番号なので、インデックス番号で図形を選択する際には注意が必要です。

コメント

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