VBA入門
第102回.Intersectメソッド

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

第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関数と誤解されがちですが、全く別物になります。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での記述方法を解説していきます。配列とは 配列は、値を格納するために多くの区画を持つ1つの変数です、集合住宅やアパートにたとえられますが、
第112回.動的配列(Redim)
VBAにおける配列の説明として最初に静的配列を解説しました、静的配列では要素数は宣言時点で決められていました。しかし、プログラミングをする上で、実行時点で要素数を決めたい場合や、実行途中で要素数を増減させたい場合が多く出てきます。実行時点で(実行途中で)要素数を増減できる配列を動的配列と呼びます。
第113回.配列に関連する関数
マクロVBAで配列を使う上で、必要となるVBA関数がいくつかあります。より便利に配列を活用するために必須となるVBA関数、・LBound関数 ・UBound関数 ・Array関数 ・IsArray関数 ・Join関数 ・Filter関数 以上のVBA関数について解説します。


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

VBA100本ノック 18本目:名前定義の削除|VBA練習問題100(11月6日)
VBA100本ノック 17本目:重複削除(ユニーク化)|VBA練習問題100(11月6日)
VBA100本ノック 16本目:無駄な改行を削除|VBA練習問題100(11月5日)
VBA100本ノック 15本目:シートの並べ替え|VBA練習問題100(11月4日)
VBA100本ノック 14本目:社外秘シート削除|VBA練習問題100(11月3日)
VBA100本ノック 13本目:文字列の部分フォント|VBA練習問題100(11月1日)
VBA100本ノック 12本目:セル結合を解除|VBA練習問題100(10月31日)
VBA100本ノック 11本目:セル結合の警告|VBA練習問題100(10月30日)
VBA100本ノック 10本目:行の削除|VBA練習問題100(10月29日)
VBA100本ノック 9本目:フィルターコピー|VBA練習問題100(10月28日)


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

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




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


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



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