この記事では、VBA の CurrentRegionプロパティを使って、特定範囲のデータの登録件数を調べる方法について解説します。今回は下のデータを使うので、コピーしてシートの B2 セルにぺったんこと貼り付けてください。ちなみに下の書籍データはこばとの「タイトルクリエーター」というソフトで作った架空のものなので、Amazon で探しても見つかりませんよ。念のため。
書籍名 | 著者 | 出版社 |
---|---|---|
「頭の中のたまご」 | 棘成央 | ルビー社 |
「狂ったシベリア」 | 新遙平 | 黒石公論社 |
「心の要塞」 | 獺越清大 | ハスキー |
「モナコで春夏秋冬」 | 惠良田喬樹 | 山岡書店 |
「人間の民主化」 | 平子田喜翔 | 旧時代社 |
「カントリーをめぐる旅」 | 裏村高之 | 悲壮社 |
「愉しい温泉宿」 | 袋谷剛充 | 隅川マーケティング |
「猫たちの王国」 | 宗野慎弥 | エメラルド社 |
【VBA】CurrentRegion プロパティ
さて、上のデータを B2 セルに貼りつけると図のように周りを空白セルで囲まれすね。このようなデータ範囲のことを アクティブセル領域 といって、VBA はひとかたまりのモノ、つまり一つのオブジェクトとして認識してくれます。
このアクティブセル領域を参照するには CurrentRegionプロパティを使ってこんなふうに書きますよ。
'[VBA] セルC6を含むアクティブセル領域を選択します Sub ActiveRange_1() Range("C6").CurrentRegion.Select End Sub
ActiveRange_1() を実行してみると、ちゃんとデータ範囲が選択されます。
上のマクロでは 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() を実行してみると …
こんなふうに登録データ件数が表示されます。大きなデータを扱うときは、このマクロを用意しておくと便利です。あ、そうそう、書籍データの一番最初にある「頭の中のたまご」って、どんな内容なのか気になりませんか? 架空の本だから、そんなこと考えても仕方ないかもしれないけど、もし作家さんに「このタイトルで本を書いてくださいな」て頼んだら、どんなお話になるんでしょうね。皆さんも何か面白い物語を思いついたらコメントで教えてね。とりあえず今回はこのへんで。また次回お会いしましょう。
≫ VBA で罫線を引く方法
コメント
【AI解説】VBAのCurrentRegionプロパティ
生徒: こんにちは先生!VBAのCurrentRegionプロパティについて教えていただけますか?
先生:もちろんです!CurrentRegionプロパティは、セルを基準として連続した範囲を選択するために使用されます。どのような状況でCurrentRegionプロパティを使いたいですか?
生徒:たとえば、特定のセルを基準にして、それに隣接する連続した範囲を選択したいです。
先生:それなら、CurrentRegionプロパティを使用して目的の範囲を選択することができます。具体的なコードを見てみましょう。
生徒:なるほど、rng.CurrentRegionで連続した範囲が選択されるんですね!それでは、このコードを実行するとどうなりますか?
先生:このコードを実行すると、指定した基準セルを中心にして、隣接する連続した範囲が選択されます。基準セルを”A1″と指定していますので、そのセルを中心にした範囲が選択されるでしょう。
生徒:分かりました!ところで、CurrentRegionプロパティはセル範囲だけでなく、テーブルやデータベースなど他の要素に対しても使えますか?
先生: はい、CurrentRegionプロパティはセル範囲以外にも使うことができます。たとえば、テーブルやデータベースのデータが格納された範囲を選択することもできます。
生徒:なるほど、便利ですね!それから、もし基準セルから連続した範囲に空白のセルがあった場合、CurrentRegionプロパティはそれらを含めて選択するのでしょうか?
先生: はい、CurrentRegionプロパティは基準セルから連続した範囲を選択するため、空白のセルも含まれます。ですので、基準セルを中心にした連続した範囲を選択したい場合に便利ですが、空白のセルを含めたくない場合は別の方法を使う必要があります。