こんにちは、ヒガシです。
このページでは、VBA上で現在選択されている領域の行数、列数を取得する方法をご紹介していきます。
それではさっそくやっていきましょう!
領域の行数を取得する方法
VBA上で指定領域の行数を取得する方法は以下の通りです。
Range(*****).Rows.Count
*****のところには”A1:B2″みたいな領域を直接指定しても良いですし、現在選択している領域を指定したければSelection.AddressとすればOKです。
領域の列数を取得する方法
列数取得も基本的には先ほどの行数取得とほぼ同じです。
Range(*****).Columns.Count
これも先ほど同様に*****のところには”A1:B2″みたいな領域を直接指定しても良いですし、現在選択している領域を指定したければSelection.AddressとすればOKです。
サンプルプログラムの紹介
それでは先ほど紹介したスキルを織り込んだプログラムをご紹介します。
今回はエクセル上で選択している領域の行数、列数をメッセージボックスで知らせてくれるマクロです。
Sub check_region_row_column()
'選択領域にする場合
select_address = Selection.Address
'指定領域にする場合
'select_address = "A1:B2"
r = Range(select_address).Rows.Count
c = Range(select_address).Columns.Count
MsgBox "選択領域の行数は" & r & "です" & vbCrLf & _
"選択領域の列数は" & c & "です"
End Sub
もし選択領域ではなく、指定領域にしたい場合は5行目のselect_addressの方をアクティブにしておけばOKです。
サンプルプログラムの実行結果
それでは先ほど紹介したプログラムを実行してみましょう。
まずは以下の水色の領域を選択した状態で実行してみます。
問題なく行数、列数を取得してくれていますね。
次は以下の条件。
こちらも問題なしですね。
おわりに
ということで今回は選択した領域の行数、列数を取得する方法をご紹介しました。
アプリケーションを作ろうと思ったら意外と選択してもらった領域に処理を施すということは多いので今回のスキルが役立つシーンは多いと思います。
私も以下のアプリケーション開発で本スキルを多用しています。
興味があればこちらもぜひご覧ください。
それではまた!
コメント