『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【VBA】CurrentRegionでアクティブセル領域を参照します

この記事では、VBA の CurrentRegionプロパティを使って、特定範囲のデータの登録件数を調べる方法について解説します。今回は下のデータを使うので、コピーしてシートの B2 セルにぺったんこと貼り付けてください。ちなみに下の書籍データはこばとの「タイトルクリエーター」というソフトで作った架空のものなので、Amazon で探しても見つかりませんよ。念のため。

書籍名 著者 出版社
「頭の中のたまご」 棘成央 ルビー社
「狂ったシベリア」 新遙平 黒石公論社
「心の要塞」 獺越清大 ハスキー
「モナコで春夏秋冬」 惠良田喬樹 山岡書店
「人間の民主化」 平子田喜翔 旧時代社
「カントリーをめぐる旅」 裏村高之 悲壮社
「愉しい温泉宿」 袋谷剛充 隅川マーケティング
「猫たちの王国」 宗野慎弥 エメラルド社

【VBA】CurrentRegion プロパティ

さて、上のデータを B2 セルに貼りつけると図のように周りを空白セルで囲まれすね。このようなデータ範囲のことを アクティブセル領域 といって、VBA はひとかたまりのモノ、つまり一つのオブジェクトとして認識してくれます。
 
アクティブセル領域は空白セルに囲まれた部分です
 
このアクティブセル領域を参照するには CurrentRegionプロパティを使ってこんなふうに書きますよ。

'[VBA] セルC6を含むアクティブセル領域を選択します
Sub ActiveRange_1()
  Range("C6").CurrentRegion.Select
End Sub

ActiveRange_1() を実行してみると、ちゃんとデータ範囲が選択されます。
 
CurrentRegionプロパティでアクティブセル領域を選択
 
上のマクロでは Range(“C6”) としているけど、ここは Range(“B2”) でも Range(“D9”) でも、そのセルがデータ範囲に含まれてさえいれば何でもかまいません。好きなセルを書いておいてくださいな。

登録データ件数を表示します

それでは、CurrentRegionプロパティを使って見出しを除いた登録データ件数をセル C12 に表示させてみましょう。こんなふうに書きます。

'[VBA] 見出しを除いたデータ件数を数えます
Sub ActiveRange_2()
  Range("C12").Value = Range("C6").CurrentRegion.Rows.Count - 1
End Sub

アクティブセル領域の行数を得て、見出しの 1 行ぶんだけを引いています。ActiveRange_2() を実行してみると …
 
CurrentRegionプロパティで登録データ件数を表示

こんなふうに登録データ件数が表示されます。大きなデータを扱うときは、このマクロを用意しておくと便利です。あ、そうそう、書籍データの一番最初にある「頭の中のたまご」って、どんな内容なのか気になりませんか? 架空の本だから、そんなこと考えても仕方ないかもしれないけど、もし作家さんに「このタイトルで本を書いてくださいな」て頼んだら、どんなお話になるんでしょうね。皆さんも何か面白い物語を思いついたらコメントで教えてね。とりあえず今回はこのへんで。また次回お会いしましょう。
 
≫ VBA で罫線を引く方法

コメント