対象:Excel 2010, Excel 2013, Windows版Excel 2016
このサイトで、
「vba intersect 戻り値」
という検索が行われていました。
Excel VBAのIntersectメソッドが、何を返すのか疑問に感じていらした方による検索です。
Application.IntersectメソッドはRangeオブジェクトを返す
オブジェクトブラウザーの詳細ペインに「As Range」と明示されるとおり、
Application.Intersectメソッドは、Rangeオブジェクトを返します。
[スポンサードリンク]
コードの入力中にショートカットキー[Ctrl]+[I]を押して表示されるヒントでも、
Application.Intersectメソッドの戻り値が、Rangeオブジェクトであることを確認できます。
Application.Intersectメソッドは、引数に指定された複数のRangeオブジェクトの、重なっている(ダブっている)セルを表すRangeオブジェクトを返します。
ちなみにApplication.Intersectメソッドは、グローバルメンバーですから、上位のオブジェクト式部分「Application」を省略して、いきなり「Intersect」と書き始められます。
Intersectメソッドの戻り値を確認するサンプルマクロ
以下のSubプロシージャを実行すると、行全体を表すRangeオブジェクトを返すRowsプロパティを使ったオブジェクト式「Rows(1)」で返される1行目全体を表すRangeオブジェクトと、列全体を表すRangeオブジェクトを返すColumnssプロパティを使った「Columns(1)」で返される1列目全体を表すRangeオブジェクトの重なっているセル、即ち「A1」がメッセージボックスに表示されます。
Sub Intersectメソッドの戻り値を確認する()
Dim rng As Range
Set rng = Intersect(Rows(1), Columns(1))
MsgBox rng.Address(False, False)
End Sub
Dim rng As Range
Set rng = Intersect(Rows(1), Columns(1))
MsgBox rng.Address(False, False)
End Sub
RowsとColumnsの引数を変更して、どのセルを表すRangeオブジェクトが返されるかを確認してみてください。
[スポンサードリンク]
- Newer:表計算ソフトとプログラミング
- Older:COUNT関数で別シートのデータ数をカウント
Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » Intersectメソッドの戻り値は?