教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】アクティブセルのアドレスを取得(Row・Column)するにはどうすればいいの?教えて!

f:id:m_kbou:20200419070205p:plain

アクティブセルのアドレスは「何行何列目のセル」である事が分かればいいので、行を取得するRowプロパティと列を取得するColumnプロパティを使用してアドレスを取得します。このアクティブセルのアドレスを取得する方法について紹介します。

 

 

構文

記述方法は以下の通りとなります。

ActiveCell.Row

ActiveCell.Column

[説明]:

アクティブセルの行アドレス(行数)を取得するには「ActiveCell.Row」と記述し、列アドレス(列数)を取得するには「ActiveCell.Column」と記述します。内容を纏めると、「アクティブセルの行数や列数を取得して下さい。」との意味になります。

 

使い方

使い方について具体的に説明します。

アクティブセルの行数を取得する方法

アクティブセルの行数を取得する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Dim 行 As Integer
  行 = ActiveCell.Row
  MsgBox "アクティブセルの行数は" & 行 & "行目です。"
End Sub

内容は、「アクティブセルの行数を変数:行にセットし、最後にMsgBoxで”アクティブセルの行数はX行目です。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210308160345p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。★が入力されているB1セルを選択し、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210308160404p:plain

②結果は以下の様になります。「アクティブセルの行数は1行目です。」が表示されます。

f:id:m_kbou:20210308160420p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

アクティブセルの行数を取得する方法についての説明は以上です。

 

アクティブセルの列数を取得する方法

アクティブセルの列数を取得する方法について説明します。

[プログラミング例]:

Sub サンプル()
  Dim 列 As Integer
  列 = ActiveCell.Column
  MsgBox "アクティブセルの列数は" & 列 & "列目です。"
End Sub

内容は、「アクティブセルの列数を変数:列にセットし、最後にMsgBoxで”アクティブセルの列数はX列目です。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210308161013p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。★が入力されているB1セルを選択し、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210308161031p:plain

②結果は以下の様になります。「アクティブセルの列数は2列目です。」が表示されます。

f:id:m_kbou:20210308161046p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

アクティブセルの列数を取得する方法についての説明は以上です。

 

おわりに

今回はアクティブセルのアドレスを取得する方法について説明しました。上記の例では、行および列共に取得した結果を変数に保存しMsgboxで表示しました。しかし、実際のプログラミングでは、取得した結果(値)を元に分岐処理(IF判定Select判定)で使用する事が多くなると思います。