Selection change
Selection Changeとは、セルの選択範囲を変更したときに発生するイベントです。
選択範囲の変更とは上のようにエクセルのワークシートで違うセルをクリックしたときなどのことです。
Selection Changeではワークシートにある選択範囲が変更されたときや、指定した位置に選択範囲が移ったときなどにイベントを発生させることができます。
それではVBEを起動してSelectionChangeを作成してみましょう。
エクセルを起動して[ ツール ] ⇒ [ マクロ ] ⇒ [ Visual Basic Editor ]を選択するか、ワークシートを開いた状態で[ Alt ] + [ F11 ]キーを押します。(実行結果は同じです)
VBEの画面が起動します。
SelectionChangeはワークシートで発生するイベントなので、Sheet1(Sheet1)をダブルクリックで選択します。
すると右側に白紙のスペースが表示されます。
右スペースには2つの欄があります。左がオブジェクト欄で(General) , 右がプロシージャ欄で(Declarations)と表示されています。
この左側のオブジェクト欄のコンボボックスをクリックして「WorkSheet」を選択します。
Worksheetを選択すると右側のプロシージャ欄が「SelectionChange」に変化します。
そして下の白紙にプロシージャが自動で作成されます。
これでSelectionChangeを使用する準備が整いました。
最後に簡単なSelectionChangeのイベントを作ってみましょう。
今回は「C3セルをクリックしたときにメッセージを表示する」というものを作ります。
自動作成されたプロシージャに発生させる条件と内容を書き込みます。
内容を説明していきます。
コードと内容 (1行目) |
---|
If Target.Address() = "$C$1" Then |
もしC1セルに選択範囲が移った場合 |
コードと内容 (2行目) |
---|
MsgBox "このセルには文字入力できません" |
このセルには文字入力できません というメッセージボックスを表示します。 |
最後に 「End If」 で閉じます。
ここまでコードが書けたら終了です。
VBEからエクセルシートに画面を戻し、C1セルをクリックしてみましょう。
C1セルをクリックすると、上の画像のようになります。
SelectionChangeイベントがしっかりと実行されていますね。
