【エクセルVBA】領域を一括で変数指定⇒個別セル名を取得する方法!

 

この記事では、VBAを使って領域を一括で一つの変数として指定し、その後その領域内にある個別のセルの名前を取得する方法をご紹介していきます。

 

例えば、データの入っているA1:AZ100セルまでを一括で領域指定しています。

その後、指定領域の左から30番目、上から10番目のセルを黄色に塗りつぶしたい、なんて状況が起きたとします。

セルの色を変えるにはセルの名前を指定してあげる必要がありますが、左から30番目、上から10番目ってどこだろう?ってなりますよね。

 

こういった状況で使えるスキルです。

 

それではさっそくやっていきましょう。

 

スポンサーリンク

領域を一括で変数に指定する方法

まずは事前知識として、そもそも領域を一括で変数に指定する方法をご紹介しておきます。

 

今回は以下の例を参考に実演していきましょう。

領域をひとつの変数として指定する例

 

この領域を一括で変数化する方法は以下の通りです。

〇領域情報まで取得したい場合

Set 変数名 = Range(“B2:D4”)

非常に簡単ですね。

 

以下参考情報

〇セル内のデータだけを取得したい場合

変数名 = Range(“B2:D4”)

 

今回は領域情報まで含めて取得したいので、上のSetを付けている方を使います。

しっかりと使い分けを覚えておきましょう。

 

スポンサーリンク

領域を一括指定後に個別のセル名を取得する方法

それでは領域取得ができましたので、領域内の個別のセル名の取得方法をご紹介します。

 

セル名を取得するには、以下のコードを実行します。

(一番左上のセル名を取得する場合)

変数名(1, 1).Address

基本的には、変数名と(行数、列数)を指定するだけですね。

 

先ほどの状況で実演してみましょう。

Sub test()
    Set region1 = Range("B2:D4")
    MsgBox region1(1, 1).Address
End Sub

 

こいつを実行すると以下のメッセージを出力されました。

領域内からセル名を取得した結果

問題なくセル名を取得できていますね。

 

ちなみに.Addressを付けなければ、セル内データである(1,1)を取得できます。

 

状況に応じて使い分けましょう。

 

スポンサーリンク

おわりに

というわけで今回は、VBA上で領域を一括で一つの変数として指定し、その後その領域内にある個別のセルの名前を取得する方法をご紹介しました。

意外と使えるスキルですので、ぜひ覚えておきましょう。

 

このように、私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。

⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました