
Excel VBA には Intersect という便利な関数があります。

これは「2つ以上の範囲の交差部分を返す」仕組みで、範囲が重なっていなければ Nothing
を返します。
今回はこの Intersect を使って、ユーザーが選択した範囲が A1:E8 に含まれるかどうかを判定するマクロ を紹介します。
コード例:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A1:E8")) Is Nothing Then
MsgBox "範囲内"
End If
End Sub

コード解説:
・ Worksheet_SelectionChange
… シート上でセル選択が変わったときに自動実行されるイベント。
・ Target
… ユーザーが新たに選択したセル範囲。
・ Intersect(Target, Me.Range("A1:E8"))
… Target と A1:E8 の交差部分を取得。
・ Nothing
でなければ、つまり「交差あり=範囲内」ということ。

👉 実行すると、ユーザーが A1:E8 の中を選んだ瞬間に 「範囲内」 とメッセージが表示されます。



コメントを残す