Excel VBA Intersectメソッドの解説
VBAのIntersectメソッドは、2つ以上の範囲の交差部分を取得するためのものです。このメソッドは非常に便利で、特定の範囲が他の範囲と交差しているかどうかを確認する場面などでよく使われます。
Intersectメソッドの基本的な使い方
Intersectメソッドは、次のような基本形式で使用します:
Set rng = Application.Intersect(Range1, Range2[, Range3[, ...]])
rngには交差部分が格納されます。交差部分が存在しない場合、rngにはNothingが格納されます。Range1、Range2等は範囲を表すRangeオブジェクトまたは範囲を示す文字列を指定します。2つ以上の範囲を指定することができます。
Intersectメソッドのサンプルコード
サンプル:範囲の交差部分を表示する
以下のサブルーチンは、指定した2つの範囲が交差している場合、その交差部分をメッセージとして表示します。
Sub ShowIntersect()
Dim rng1 As Range
Dim rng2 As Range
Dim rngIntersect As Range
Set rng1 = Range("A1:C3")
Set rng2 = Range("B2:D4")
Set rngIntersect = Application.Intersect(rng1, rng2)
If Not rngIntersect Is Nothing Then
MsgBox "Intersecting range is " & rngIntersect.Address
Else
MsgBox "Ranges do not intersect"
End If
End Sub
このサンプルコードでは、まず2つの範囲(”A1:C3″と”B2:D4″)を定義し、それらの範囲が交差しているかどうかをIntersectメソッドでチェックしています。交差している場合、交差部分の範囲がrngIntersectに格納され、そのアドレス(範囲)がメッセージボックスに表示されます。交差していない場合、rngIntersectにはNothingが格納され、”Ranges do not intersect”というメッセージが表示されます。