PR

0から始めるVBA―Worksheets.count【シート数の取得】

blank Excel

このページでは、VBAでシート数を取得する「Worksheets.count」の意味と使い方を解説します。

「Worksheet.count」を利用することで、対象のブック(Excelファイル)のシート数を取得することができます。このページでは、コピペしてすぐ使えるようなサンプルコードとともに、worksheets/worksheetの違いなど一歩深い知識まで解説しています。

VBAを用いて業務改善ツールを作成している人や、VBA学習中にとって知っていると役立つ基本知識ばかりですので、是非最後までご覧ください。

スポンサーリンク

「Worksheets.count」 とは?

「Worksheets.count」の「count」はWorksheetsコレクションのシート数を取得するプロパティです。

「Worksheets.count」の「count」はWorksheetsコレクションの「シート数を取得」するプロパティです。

シート数が4つありますので、Worksheetsのcountプロパティには「」が設定されていることになります。

「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」が表示されます。)

blank

サンプルコードを動かしたタイミングで存在していたシート数が、メッセージボックスに表示されます。

上記の場合、マクロ実行時のエクセルファイルのシート数が「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から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ExcelVBA
シェアする
ビズドットオンラインをフォローする
blank
ビズドットオンライン
タイトルとURLをコピーしました