目次
交差する
今回は、 Excel VBA の Intersect メソッドを使用して、セルの共有範囲を取得するマクロを作成してみたいと思います。
Intersect の英語の意味をインターネットの翻訳で調べて見ますと「交差する」という意味になるようです。
複数のセル範囲の交差するセルを取得することができるようですね。
テスト用に以下の画像のワークシートを準備してみました。
赤枠の範囲( B3:D3 )と青枠の範囲( C2:C4 )の共有範囲( C3 )を Intersect メソッドで取得してみたいと思います。
![赤枠と青枠の共有範囲を取得してみます。](https://pulogu.net/wordpress/wp-content/uploads/2021/01/excel-vba-intersect.png)
マクロの一例
早速、以下のマクロを作成してみました。
マクロを実行すると、共有範囲のアドレスがメッセージボックスに表示されると思います。
Sub セル範囲の共有範囲を取得するマクロ()
MsgBox Intersect(Range("B3:D3"), Range("C2:C4")).Address
End Sub
上のマクロを実行すると以下の画像のメッセージボックスが表示されました。
B3:D3 と C2:C4 の共有範囲の C3 のアドレスが表示されていますね。
共有範囲の取得に成功したようです。
![共有範囲のアドレスが取得出来ました。](https://pulogu.net/wordpress/wp-content/uploads/2021/01/excel-vba-intersect-kekka.png)
半角スペース
以下のようなマクロも作成してみました。
共有範囲を調べたいセル範囲を半角スペースで区切って記述しています。
この記述方法でも共有範囲を取得することができるようです。
Sub セル範囲の共有範囲を取得するマクロ2()
MsgBox Range("B3:D3 C2:C4").Address
End Sub
上のマクロを実行すると、以下の画像の結果になりました。
ひとつ目のサンプルマクロと同じ結果になっていますね。
![セル範囲を半角スペースで区切っても共有範囲を取得出来ました。](https://pulogu.net/wordpress/wp-content/uploads/2021/01/excel-vba-intersect-kekka.png)
もう一例
もう一例、マクロを作成してみます。
以下の画像のワークシートの赤枠( C2:D5 )と青枠( B3:E4 )の共有範囲( C3:D4 )を取得してみます。
![共有しているセルが複数あります。](https://pulogu.net/wordpress/wp-content/uploads/2021/01/excel-vba-intersect-fukusuu-cell.png)
以下のマクロを作成してみました。
Sub セル範囲の共有範囲を取得するマクロ3()
MsgBox Intersect(Range("C2:D5"), Range("B3:E4")).Address
End Sub
実行してみると以下の結果になりました。
赤枠と青枠の共有範囲として C3:D4 を取得できたようです。
![共有範囲を取得出来ました。](https://pulogu.net/wordpress/wp-content/uploads/2021/01/excel-vba-intersect-fukusuu-cell-kekka-1.png)
以上閲覧ありがとうございました。