この記事では、VBAを使って領域を一括で一つの変数として指定し、その後その領域内にある個別のセルの名前を取得する方法をご紹介していきます。
例えば、データの入っているA1:AZ100セルまでを一括で領域指定しています。
その後、指定領域の左から30番目、上から10番目のセルを黄色に塗りつぶしたい、なんて状況が起きたとします。
セルの色を変えるにはセルの名前を指定してあげる必要がありますが、左から30番目、上から10番目ってどこだろう?ってなりますよね。
こういった状況で使えるスキルです。
それではさっそくやっていきましょう。
領域を一括で変数に指定する方法
まずは事前知識として、そもそも領域を一括で変数に指定する方法をご紹介しておきます。
今回は以下の例を参考に実演していきましょう。
この領域を一括で変数化する方法は以下の通りです。
〇領域情報まで取得したい場合
非常に簡単ですね。
以下参考情報
〇セル内のデータだけを取得したい場合
今回は領域情報まで含めて取得したいので、上のSetを付けている方を使います。
しっかりと使い分けを覚えておきましょう。
領域を一括指定後に個別のセル名を取得する方法
それでは領域取得ができましたので、領域内の個別のセル名の取得方法をご紹介します。
セル名を取得するには、以下のコードを実行します。
(一番左上のセル名を取得する場合)
基本的には、変数名と(行数、列数)を指定するだけですね。
先ほどの状況で実演してみましょう。
Sub test()
Set region1 = Range("B2:D4")
MsgBox region1(1, 1).Address
End Sub
こいつを実行すると以下のメッセージを出力されました。
問題なくセル名を取得できていますね。
ちなみに.Addressを付けなければ、セル内データである(1,1)を取得できます。
状況に応じて使い分けましょう。
おわりに
というわけで今回は、VBA上で領域を一括で一つの変数として指定し、その後その領域内にある個別のセルの名前を取得する方法をご紹介しました。
意外と使えるスキルですので、ぜひ覚えておきましょう。
このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント