VBA入門
Intersectメソッド

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2023-08-24

第102回.Intersectメソッド


IntersectメソッドはApplicationのメソッドです。
複数セル範囲の、重なっている部分のセル範囲を取得することが出来ます。


あるセルが、特定セル範囲内にあるかどうかを判定したり、
セル範囲の中から、特定の列や行の部分だけを取り出したりする場合に使います。


Intersectメソッド

複数のセル範囲の共有セル範囲を表すRangeオブジェクトを返します。

Application.Intersect(Arg1, Arg2, Arg3, ・・・, Arg30)

Arg1 セル範囲 (Range オブジェクト) を指定します。
Arg2 セル範囲 (Range オブジェクト) を指定します。
Arg3 セル範囲 (Range オブジェクト) を指定します。
Arg30 セル範囲 (Range オブジェクト) を指定します。

Application.は省略可能です。
Arg1とArg2は必須です、Arg3以降はオプション(指定は任意)になります。


Intersectの使用例

あるセルが特定セル範囲内にあるかどうかを判定

Dim isect As Range
Set isect = Intersect(Selection, Columns("B"))
If isect Is Nothing Then
  MsgBox ("B列が選択されていません。")
Else
  isect.Select
End If

シート上で選択されているセル範囲の内、B列だけを選択し直しています。
B列が選択されていない場合は、メッセージを表示しています。


セル範囲の中から特定の部分だけを取り出す

VBA マクロ 画像

このような表において、B列のデータ部分のみ消去します

Intersect(Range("A1").CurrentRegion.Offset(1), Columns(2)).ClearContents

Range("A1").CurrentRegionは、A1:C11
Range("A1").CurrentRegion.Offset(1)は、A2:C12
つまり、
A2:C12とB:Bの重なっているB2:B12がIntersectメソッドの戻り値になります。


Intersectメソッドの実践例

セル番地でバラバラに指定されたセルの削除
シート内の複数のセルを削除します。削除するセルはバラバラです。A2,A4,B5:B7,C3,E5,E6,E9,… さて、どういうVBAを書いたら良いでしょうか。セル削除後は上方向にシフトします。セルの削除についての基本は以下を参照してください。
VBA100本ノック 3本目:セルの消去
・出題 ・頂いた回答 ・解説 ・補足 ・サイト内関連ページ
イベント処理について|VBA技術解説
・ワークブックのイベント ・ワークシートのイベント ・標準モジュールとの使い分け


Intersectメソッドの最後に

Intersectメソッドは、セル範囲に関する処理では非常に応用範囲の広いメソッドです。
Unionメソッドと合わせて、いつでも使えるようにしておきましょう。
・Unionメソッド ・Areasプロパティ ・Unionメソッドで連結した結果のRangeオブジェクトの状態について ・Unionメソッドの使用例 ・Unionメソッドの実践例


以下も参考にしてください。
Rangeオブジェクトの論理演算(差集合と排他的論理和)
・集合について ・Rangeオブジェクトの論理演算のVBAについて ・和集合:Unionメソッド ・積集合:Intersectメソッド ・補集合 ・差集合 ・排他的論理和 ・Rangeオブジェクトの論理演算VBAの使い方とテスト




同じテーマ「マクロVBA入門」の記事

第108回.変数の適用範囲(スコープ,Private,Public)
第100回.InputBoxメソッド(インプットボックス)
第101回.Midステートメント
第102回.Intersectメソッド
第103回.UnionメソッドとAreasプロパティ
第104回.GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)
第109回.列挙型(列挙体)Enum
第110回.ユーザー定義型・構造体(Type)
第111回.静的配列
第112回.動的配列(Redim)
第113回.配列に関連する関数


新着記事NEW ・・・新着記事一覧を見る

第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ