[VBA] セル範囲の行数と列数を取得して表示します

 今回はセル範囲の行と列の数を参照する方法ですよ~。

 それでは、かぞえましょ~♪
 セルは、いくつ、あるのかな~♪
 タテと、ヨコに、いくつあるのかな~♪

 え? 何で歌うのかって?
 それは、こばとは音楽の妖精さんだから。
 ...... もちろん冗談ですよ。こばとは言葉の妖精さんです。

セル範囲を選択して行と列を数えます

 行を数えたいときは、Rowsプロパティで Rowsオブジェクトをもってきて、Countプロパティで数えればいいのです。列を数えたいときは Columnsプロパティですよ。それではさっそく、セル B2 ~ D8 を選択して行と列を数えるマクロを書いてみましょ~。

 'セル範囲を選択して行と列を数えます

 Sub CountRowsColumns1()

 '行数と列数を入れる変数を宣言しておきましょ~
 Dim ctr As Integer
 Dim ctc As Integer

 'セル範囲を選択しましょ~
 Range("B2:D8").Select

 'セル範囲の行数と列数を数えましょ~
 ctr = Selection.Rows.Count
 ctc = Selection.Columns.Count

 '数え終わったら表示しましょ~
 MsgBox "選択されたセル範囲は" & ctr & "行" & ctc & "列" & "です"

 End Sub

 ぽちっと実行してみると、メッセージボックスに行数と列数が表示されます。

 RowsプロパティとColumnsプロパティでセル範囲の行と列を数える

 今回注目するコードはここです。
 金八先生ふうに言うと「は~い。ちゅうも~く!」です。
 別に金八先生ふうに言わなくてもいいけどね。

ctr = Selection.Rows.Count

 Selectionプロパティで取得した Rangeオブジェクトから、Rowsプロパティで選択範囲の行を参照して、Countプロパティでその数をかぞえて、変数 ctr に放り込んでいます。その次のコード

ctc = Selection.Columns.Count

では選択範囲の列を数えています。Rows も Columns も頻繁に使うプロパティなので使い方をしっかり覚えてね~。
 

アクティブセル領域の行と列を数えます

 次はワークシートにデータベースがあって、その行数と列数を数えるマクロです。データは何でもいいんだけど、すぐに用意できない人は次のデータをコピーして B2 セルに張り付けてくださいな。

書籍名 著者 出版社
「さくらんぼ戦場」 旗根史穏 夕暮舎
「ふしぎな人間」 藥師雄大 中学教育出版
「魅惑の漫画」 小寺山文健 夏風社
「手作り心理学」 宮前伸吏 黒石館
「女が何だっていうの?」 三沢卓平 山海新社
「日本のタイガーマスク」 西ノ薗顕三 春夏社
「夕暮れ自伝」 三沼隆洸 早川ブック
「気まぐれふるさと」 古崎雅継 大和舎

 こんなマクロを書いてみましたよ。

 'アクティブセル領域の行数と列数を表示します

 Sub CountRowsColumns2()

 Dim ctr As Integer
 Dim ctc As Integer
 Dim mystr As String
 Dim myrange As Range

 mystr = "選択されたデータの大きさは"

 'オブジェクト変数 myrange にセル範囲を放り込みましょ~
 Set myrange = Range("B2").CurrentRegion

 'セル範囲の行数と列数を数えましょ~
 ctr = myrange.Rows.Count
 ctc = myrange.Columns.Count

 '数え終わったら表示しましょ~
 MsgBox mystr & ctr & "行" & ctc & "列" & "です"

 End Sub

 実行すると、行数と列数が表示されますよ~。

 

 今度はこのコードが「は~い。ちゅうも~く!」なのです。

Set myrange = Range("B2").CurrentRegion

 セル B2 を含むアクティブセル領域(データが入力されている範囲)を myrange というオブジェクト変数にぽいと放り込んでいます。オブジェクトを変数に入れるときは頭に Setステートメントが必要ですよ。これって意外に忘れがちなのです。こばとも初心者の頃に Set を忘れてて、
「マクロ動かないじゃん!? VBA って欠陥言語じゃん!?」
と一人で勝手にキレていました。皆さんも逆ギレしないように、ちゃんと Set をつけてくださいな。え? そんなことでキレるのはこばとだけ? そうかなあ。

 ≫ メニューに戻って他の記事も読んでくださいな

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください