トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第6話「イベントプロシージャの可能性」3/4 :実行されるセル範囲を設定しよう

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第6話 「イベントプロシージャの可能性」

実行されるセル範囲を設定しよう

「…なるほど。
イベントプロシージャ自体は、選択範囲が変更されたとき常に実行されるんだけど、
実際の処理は、こちらが設定したセル範囲のときのみ実行させるってわけだね。
頭いいな…。
これって、矩形のセル範囲を選択したときは、どのRow、Columnプロパティが渡されるんだい?」
「そのときは、選択範囲の最も左上にあるセルのRow、Columnプロパティが渡されるよ。
ちなみにIntersectメソッドを使っても、特定のセル範囲に含まれているかどうか調べることができる」

If Intersect(Target, Range("A1:E4")) Is Nothing Then
    MsgBox "セル範囲A1:E4に含まれていません"
Else
    MsgBox "セル範囲A1:E4に含まれています"
End If

「1つめの引数のセル範囲が、2つめの引数のセル範囲に含まれないとき、
IntersectメソッドはNothingを返すんだ。
これもついでに覚えておくといい」

戻り値がNothingでないときを判定するには、
If Not Intersect(引数1, 引数2) Is Nothing Then
と記述します。

「ふーーー」 星くんが大きく息を吐き出しました。

「ありがとう、八木。
これだけ教えてもらえれば、あとはフォームを表示させ、
選択したリストの値を書き戻す処理を作るだけだ。
これはそんなに難しくないから、俺ひとりでも何とかなる。
…助かったよ、ホント」
見ると、八木くんがモジモジしています。

一覧にもどる