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)

・プロシージャーレベル変数 ・・・ プロシージャー内でのみ使用可能 ・モジュールレベル変数 ・・・ モジュール内でのみ使用可能 ・パブリック変数 ・・・ 全てのモジュールの全てのプロシージャーで使用可能 ・変数の適用範囲について簡単にまとめてると ・定数(Const)の適用範囲について ・変数の重複について ・変数は、極力狭いスコープで使う事が望ましいとされます。
第100回.InputBoxメソッド(インプットボックス)
・InputBoxメソッド ・InputBoxメソッドの使用例 ・最後に
第101回.Midステートメント
・Midステートメント ・MidBステートメント ・Midステートメントの使用例 ・Midステートメントの必要性 ・実践での使用例
第102回.Intersectメソッド
第103回.UnionメソッドとAreasプロパティ
・Unionメソッド ・Areasプロパティ ・Unionメソッドで連結した結果のRangeオブジェクトの状態について ・Unionメソッドの使用例 ・Unionメソッドの実践例
第104回.GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)
・GetPhoneticメソッド ・GetPhoneticメソッドの使用例 ・SetPhoneticメソッド ・SetPhoneticメソッドの使用例
第109回.列挙型(列挙体)Enum
・Enumステートメント ・列挙型(Enumステートメント)の使用例 ・列挙型(Enumステートメント)の活用について
第110回.ユーザー定義型・構造体(Type)
・Typeステートメントの構文 ・ユーザー定義型の使い方 ・ユーザー定義型の使用例 ・ユーザー定義型の制限 ・最後に
第111回.静的配列
・配列とは ・静的配列と動的配列 ・配列の宣言 ・多次元配列 ・要素の下限の変更 ・配列について
第112回.動的配列(Redim)
・ReDimステートメント ・要素数の変更について ・配列について
第113回.配列に関連する関数
・LBound関数とUBound 関数 ・Array関数 ・IsArray 関数 ・Join関数 ・Filter関数 ・Eraseステートメント


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

ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)
VBAでクリップボードへ文字列を送信・取得する3つの方法|VBA技術解説(2023-12-07)
難しい数式とは何か?|エクセル雑感(2023-12-07)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.繰り返し処理(For Next)|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
7.並べ替え(Sort)|VBA入門
8.条件分岐(IF)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.マクロとは?VBAとは?VBAでできること|VBA入門




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


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



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