Excel VBA入門 その54:ShapeのSelectを解除する方法

エクセルVBA VBA



エクセルに配置した図形などのシェイプをVBAで編集することは多いと思います。

その際にシェイプを選択したり、選択の解除したりしなくてはなりません。

今回はシェイプ(Shape)のSelectを解除する方法について徹底的に説明します。

参考:Excel VBA入門 その51:Select、Selection、Activate、ActiveCellの違い徹底解説



ShapeのSelectを解除する方法

そもそもSelectするとは

エクセルで図形を選択するということは、どういう動作なのでしょうか。

例えば、シート上に以下のように3個の図がある場合を考えてみます。

この図形を全選択するには、図形を1個選択(左クリック)した状態「Ctrlキー+A」で全選択でっきます。

これをVBAコードでは、以下のように「SelectAll」プロパティを使って記述します。

Sub 全選択()
    ActiveSheet.Shapes.SelectAll
End Sub

実行すると、以下のようにすべての図形が選択された状態になります。

SelectAllを使って図形を全選択した状態

Selectを解除するということは

それでは、全選択された図形の選択を解除するにはどうすればよいでしょうか。

エクセル上でこの状態を解除する場合を考えてみます。

図形の選択を解除するには、図形じゃないセルを選択(クリック)すればよいですよね。

考えるまでもないです。

いやそうじゃなくて、ようするにSelectAllの逆をしたいんだ!「解除All」をしたいんだ!!

そう考えると思いますが、残念ながら、VBAではSelectAllを解除する方法、つまり解除Allというメソッドは設定されていません。

というわけで、一応、図形選択を解除するコードを紹介します。(・・・と言っても、セルA1を選択しているだけですが、、、)

Sub 選択解除()
    Range("A1").Select
End Sub

実行すると、セルA1にカーソルが移動することにより、図形の選択が解除されます。

【まとめ】ShapeのSelectを解除する方法

VBAでは、ShapeのSelectを解除するためのメソッドは設定されていません。

そのかわり、Selectされている図形の選択を解除するためには適当なセルを選択することにより、Selectを解除することができます。

VBAやエクセルでは、Shapeの選択・解除を頻繁に使用しますのでぜひ覚えておいてくださいね。

参考:Excel VBA入門 その51:Select、Selection、Activate、ActiveCellの違い徹底解説

コメント

  1. […] 参考:Excel VBA入門 その54:ShapeのSelectを解除する方法 […]

  2. […] 参考:Excel VBA入門 その54:ShapeのSelectを解除する方法 […]

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