こんにちは、ヒガシです。
このページでは、VBA上で現在選択されている領域のセル内データを順番に取得していく方法をご紹介していきます。
例えば以下のような領域が選択されているシーンでは、
b2, c2, b3, c3 という形で、選択した領域内にあるセルに記述されている内容を順番に確認していくことができます。
マクロ実演動画の紹介
上の説明だけではイメージがつかなかった方も多いと思いますので実際のマクロ実行動画をご紹介しておきます。
小さくて少しわかりにくいと思いますが、どのような形で領域選択したとしても、選択した領域内のセルデータを順番に表示してくれていることがわかると思います。
あなたのやりたいことと一致していればぜひ続きをご覧ください。
領域内セルデータを順番に取得する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
MsgBox Cells(r, c)
Next
Next
End With
End Sub
8行目でセル内データをメッセージボックスで表示しています。
ここをあなたのやりたい処理に書き換えてあげればOKです。
おわりに
というわけで今回は選択した領域内にあるすべてのセルデータの中身を順番に確認していく方法をご紹介しました。
アプリケーションなんかを作ろうと思ったら以外と使えるスキルですのでぜひ習得しておきましょう!
私も以下のアプリケーション開発で今回のスキルを活用しています。
【エクセルVBA】エクセル上でデータ整理(コピー&フォルダ移動)するマクロ
興味があればぜひこちらもご覧ください。
それではまた!
コメント