サンプル画像
Excelマクロ塾メニュー

エクセルマクロ・VBAは慣れが肝心
最初は難しく感じるExcelのマクロとVBAですが、仕組みが理解できると徐々に使いこなせるようになってきます!
自分のペースで着実に勉強しましょう!

エクセルマクロ塾
エクセルマクロ塾

Selection change

Selection Changeとは、セルの選択範囲を変更したときに発生するイベントです。

 

VBA selectionchange

 

選択範囲の変更とは上のようにエクセルのワークシートで違うセルをクリックしたときなどのことです。

Selection Changeではワークシートにある選択範囲が変更されたときや、指定した位置に選択範囲が移ったときなどにイベントを発生させることができます。

 

それではVBEを起動してSelectionChangeを作成してみましょう。

エクセルを起動して[ ツール ] ⇒ [ マクロ ] ⇒ [ Visual Basic Editor ]を選択するか、ワークシートを開いた状態で[ Alt ] + [ F11 ]キーを押します。(実行結果は同じです)

 

VBA SelectionChange

 

VBEの画面が起動します。

SelectionChangeはワークシートで発生するイベントなので、Sheet1(Sheet1)をダブルクリックで選択します。

すると右側に白紙のスペースが表示されます。

 

VBA SelectionChange

 

右スペースには2つの欄があります。左がオブジェクト欄で(General) , 右がプロシージャ欄で(Declarations)と表示されています。

 

この左側のオブジェクト欄のコンボボックスをクリックして「WorkSheet」を選択します。

 

VBA SelectionChange

 

Worksheetを選択すると右側のプロシージャ欄が「SelectionChange」に変化します。

そして下の白紙にプロシージャが自動で作成されます。

 

これでSelectionChangeを使用する準備が整いました。

 

最後に簡単なSelectionChangeのイベントを作ってみましょう。

今回は「C3セルをクリックしたときにメッセージを表示する」というものを作ります。

 

VBA Selection Change

 

自動作成されたプロシージャに発生させる条件と内容を書き込みます。

内容を説明していきます。

コードと内容 (1行目)
If Target.Address() = "$C$1" Then
もしC1セルに選択範囲が移った場合

 

コードと内容 (2行目)
MsgBox "このセルには文字入力できません"
このセルには文字入力できません というメッセージボックスを表示します。

 

最後に 「End If」 で閉じます。

 

ここまでコードが書けたら終了です。

VBEからエクセルシートに画面を戻し、C1セルをクリックしてみましょう。

 

VBA SelectionChange

 

C1セルをクリックすると、上の画像のようになります。

SelectionChangeイベントがしっかりと実行されていますね。

VBA