このページでは、VBAでシート数を取得する「Worksheets.count」の意味と使い方を解説します。
「Worksheet.count」を利用することで、対象のブック(Excelファイル)のシート数を取得することができます。このページでは、コピペしてすぐ使えるようなサンプルコードとともに、worksheets/worksheetの違いなど一歩深い知識まで解説しています。
オブジェクト/プロパティ/メソッドについての基本理解
VBAを用いて業務改善ツールを作成している人や、VBA学習中にとって知っていると役立つ基本知識ばかりですので、是非最後までご覧ください。
「Worksheets.count」 とは?
「Worksheets.count」の「count」はWorksheetsコレクションの「シート数を取得」するプロパティです。
シート数が4つありますので、Worksheetsのcountプロパティには「4」が設定されていることになります。
「Worksheets.count」の利用例
例1)
(変数)= Worksheets.count
単純にシート数を取得したいだけの場合には、変数を「=」で結び、その値を代入します。
実際にどのように動くのか、自分で確かめたい方は以下のサンプルコードを動かしてみましょう。
Sub test002() Dim A As Long A = Worksheets.Count MsgBox A End Sub
3行目
変数A(数値型)を定義
4行目
変数Aにシート数(Worksheets.count)を格納
5行目
変数Aの値をメッセージボックスで表示
サンプルコードを実行した結果がこちらです。(メッセージボックスにシート数の「4」が表示されます。)
サンプルコードを動かしたタイミングで存在していたシート数が、メッセージボックスに表示されます。
上記の場合、マクロ実行時のエクセルファイルのシート数が「4」つだったため「4」と表示されていますが、シートを追加していけばその分メッセージボックスに表示される数字も変わります。
※変数定義「Dim」については、こちらの記事からご確認ください。
「Worksheets.count」で取得したシート数が合わない?
たまに、「Worksheets.count」で取得したシート数がずれる時があります。
実は、これ結構単純な落とし穴にはまっている状態です。おそらく、いずれかのシートが非表示になっているはずです。
非表示になっているシートも、「Worksheets.count」では1としてカウントされますのでご注意下さい。
「Worksheets.count」の利用シーン
この構文、結構簡単に意味と処理内容は理解できます。
ただし、実践的に利用するにはちょっとした工夫が必要です。「Worksheets.count」を使いこなすには、経験も必要ですが、少しでもこのページでイメージを深められるよう2つのサンプルコードを記載しておきます。
例1)最後のシートを選択する
最後(最後尾)のシートを選択したい場合に「Worksheets.count」を活用することができます。
Sub Count001() Worksheets(Worksheets.Count).Select '最後のシートを選択 End Sub
3行目
Worksheets(Worksheets.Count) ⇒ ( )の中は対象のブックのシート数が入ります。
シート数が4つある場合
Worksheets(4).Select
となるため、4つ目のシートが選択されます。
for文(繰り返し処理)と合わせて、繰り返し処理の回数を指定するような使い方も可能です。
例2)初期表示シートを全て削除する
For i = longSheetCount To 1 Step -1 wb001.Worksheets(i).Delete Next i
※説明簡略化のためコードの一部抜粋なので、これだけでは動きません。
For文と合わせて、初期に表示されていたシート数を全て削除する場合に利用することができます。
Deleteは、オブジェクトを削除するメソッドです。
※For文について知りたい方はこちらをご覧ください。
0からプログラミングを学びたい方は
プログラミングをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。
そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。