ExcelのVBAである範囲とある範囲(2つ以上のセル範囲)の重なっているセルを探す方法を記録します。
重なっているセルを探すには「Intersect」メソッドを使います。
下図は、Excel2016です。
< スポンサーリンク >
Intersect構文
式.Intersect(Arg1, Arg2, Arg3, …, Arg30)
2つ以上の範囲の長方形の交差を表すRangeオブジェクトを返します。
別のワークシートの1つ以上の範囲が指定されている場合は、エラーが返されます。
Arg1=必須。セル範囲(Rangeオブジェクト)の名前を指定。
Arg2=必須。セル範囲(Rangeオブジェクト)の名前を指定。
Arg3-Arg30=省略可能。交差する範囲。
例
A3~D3の範囲とB1~B5の範囲の交差するセルをメッセージで表示します。
Sub test()
Dim ws As Worksheet
Dim rng As Range
Set ws = ActiveSheet
Set rng = Application.Intersect(ws.Range(“A3:D3”), ws.Range(“B1:B5”))
If rng Is Nothing Then
MsgBox “該当なし”
Else
MsgBox rng.Address
End If
End Sub
A3~D3の範囲とE1~E5の範囲の場合です。交差するセルがないので「該当なし」のメッセージが表示されます。
Sub test()
Dim ws As Worksheet
Dim rng As Range
Set ws = ActiveSheet
Set rng = Application.Intersect(ws.Range(“A3:D3”), ws.Range(“E1:E5”))
If rng Is Nothing Then
MsgBox “該当なし”
Else
MsgBox rng.Address
End If
End Sub
こんな記事も書いています