VBA入門
Intersectメソッド

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2021-05-25

第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メソッドは、セル範囲に関する処理では非常に応用範囲の広いメソッドです。
いつでも使えるようにしておきましょう。




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

第108回.変数の適用範囲(スコープ,Private,Public)

変数には、その変数をVBA内で使う事ができる範囲が決められています。マクロVBAでは変数の使える範囲を、適用範囲(スコープ)と言います。適用範囲とは、宣言した変数を使う事のできる範囲です。変数を宣言した場所と宣言方法によって、その変数を使える場所が違ってきます。
第100回.InputBoxメソッド(インプットボックス)
InputBoxメソッドはApplicationのメソッドで、ユーザー入力用のダイアログボックスを表示します。表示したダイアログボックスに入力された情報を受け取ることが出来ます。マクロVBAの途中でユーザーに何らかの値を入力してもらう事で、その後の処理にその値を使う場合に使用します。
第101回.Midステートメント
Midステートメントは、文字列変数の一部を他の文字列に置き換えます。これは、マクロVBAのステートメントであり、Mid関数とは根本的に違うものです。Mid関数と誤解されがちですが、全く別物になります。
第102回.Intersectメソッド
第103回.UnionメソッドとAreasプロパティ
UnionメソッドはApplicationのメソッドです。複数のセル範囲を集め、1つのRangeオブジェクとして参照することができます。つまり、Unionメソッドは複数のRangeオブジェクトを連結して1つのRangeオブジェクトにします。
第104回.GetPhoneticメソッドとSetPhoneticメソッド(フリガナ)
GetPhoneticメソッドは、指定した文字列の日本語の「ふりがな」を取得します。SetPhoneticメソッドは、セルに日本語の「ふりがな」を設定します。マクロVBAにおいて、「ふりがな」を扱う時はこれらのメソッドを使います。
第109回.列挙型(列挙体)Enum
列挙体は、数値限定のConst定数をひとまとめにして参照しやすくしたものになります。マクロVBAの中で、意味を持つ固定数値を直接記述することは、マジックナンバーとも呼ばれメンテナンス性がとても悪いものになってしまいます 例えば、列位置3(C列)を参照する場合、VBA内で何度も3と記述していては後で変更することが大変…
第110回.ユーザー定義型・構造体(Type)
ユーザー定義型は、名前の通りユーザーが定義できるデータ型になります。普通の変数は、1つの値しか入れられませんが、ユーザー定義型は、複数の異なるデータ型を入れる事が出来ます。プログラミング言語での一般的な呼び方としては、構造体とも呼ばれます。
第111回.静的配列
マクロVBAを学習していくと必ず配列が出てきます。VBA記述自体は簡単なものですが、正しく理解せずに使っている場合も結構見受けられます。ここでは、配列の概要から入り、VBAでの記述方法を解説していきます。
第112回.動的配列(Redim)
マクロVBAにおける配列の説明として最初に静的配列を解説しました。静的配列では要素数は宣言時点で決められていました。しかし、プログラミングをする上で、実行時点で要素数を決めたい場合や、実行途中で要素数を増減させたい場合が多く出てきます。
第113回.配列に関連する関数
マクロVBAで配列を使う上で、必要となるVBA関数がいくつかあります。より便利に配列を活用するために必須となるVBA関数、・LBound関数 ・UBound関数 ・Array関数 ・IsArray関数 ・Join関数 ・Filter関数 以上のVBA関数について解説します。


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

VLOOKUPを使うことを基本としてシートを設計すべきか|エクセル雑感(2021-08-17)
コンピューターはブラックボックスで良い|エクセル雑感(2021-08-14)
小文字"abc"を大文字"ABC"に変換する方法|エクセル雑感(2021-08-13)
ADOでテキストデータを集計する|VBAサンプル集(2021-08-04)
VBA学習のお勧めコース|エクセル雑感(2021-08-01)
エクセル馬名ダービー|エクセル雑感(2021-07-21)
在庫を減らせ!毎日棚卸ししろ!|エクセル雑感(2021-07-05)
日付型と通貨型のValueとValue2について|エクセル雑感(2021-06-26)
DXってなんだ? ITと何が違うの?|エクセル雑感(2021-06-24)
エクセルVBA 段級位 目安|エクセル雑感(2021-06-21)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.Excelショートカットキー一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.RangeとCellsの使い方|VBA入門
5.繰り返し処理(For Next)|VBA入門
6.マクロって何?VBAって何?|VBA入門
7.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
8.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
9.セルに文字を入れるとは(Range,Value)|VBA入門
10.とにかく書いてみよう(Sub,End Sub)|VBA入門




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


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



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