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