こんにちは、ヒガシです。
このページでは、VBA上で現在選択されている領域のセルアドレスを順番に取得していく方法をご紹介していきます。
例えば以下のような領域を選択している状態で本記事で紹介するマクロを実行すれば、
B2, C2, B3, C3 という形で、選択した領域内にあるすべてのセルを順番に表示していくことが可能です。
マクロ実演動画の紹介
上の説明だけではよくわからなかったと思いますので、まずは実演動画をご覧ください。
こんな感じで複数行&複数列を選択した場合、1列&複数行を選択した場合、1列&複数列を選択した場合とどんな状況でも順番に選択したセルのアドレスを表示できます。
領域内セルアドレスを順番に表示するVBAプログラム
それでは先ほど紹介した内容を実行可能なVBAプログラムをご紹介します。
Sub check_select_cell3()
'選択したセルのアドレスを取得する
select_address = Selection.Address
'選択したセルに対して順番に処理
With ActiveSheet.Range(select_address)
For r = .Row To .Rows.Count + .Row - 1
For c = .Column To .Columns.Count + .Column - 1
ncell = Replace(Cells(r, c).Address, "$", "")
MsgBox ncell
Next
Next
End With
End Sub
基本的には選択した領域の行数、列数を取得して、それぞれにForループを回してアドレスを表示していっているだけです。
おわりに
そいうことで今回はエクセル上で選択した領域内のセルアドレスを順番に表示する方法をご紹介しました。
エクセル上でアプリケーションを作ろうとしたら意外と使えるスキルです。
私も以下のアプリケーション開発で今回のスキルを活用しています。
【エクセルVBA】超便利!データ読み込み⇒グラフ作成自動化マクロ!
ぜひ業務効率化にご活用ください。
それではまた!
コメント