教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA シート操作】開いているブック内のシートの数を取得(Count)するにはどうすればいいの?教えて!

f:id:m_kbou:20200418160542p:plain

開いているブック内のシートの数を取得するにはCountプロパティを使用します。Countプロパティは取得のみ可能で設定はできません。また、シートの追加・削除を行うとCountプロパティは自動的に変更されます。このCountプロパティを使用したシートの数を取得する方法について紹介します。

 

 

構文

記述方法は以下の通りとなります。

Workbooks(”[ブック名]”).Worksheets.Count

[説明]:

ブック内のシート数を取得するには「Workbooks(”[ブック名]”).Worksheets.Count」と記述します。[ブック名]にはシート数を数えるブック名を記述します。ブック名は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[ブック名]で記述したブックに含まれているシート数を教えて下さい。」との意味になります。

[記述例]:

Workbooks("Book1.xlsm").Worksheets.Count

 

使い方

使い方について具体的に説明します。

[プログラミング例]:

Sub サンプル()
  MsgBox "シート数 = " & Workbooks("Book1.xlsm").Worksheets.Count
End Sub

内容は、「Book1.xlsm内に含まれるシート数をカウントし、最後にMsgBoxで”シート数 = X”で表示して下さい。」との意味になります。

f:id:m_kbou:20210307071926p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210307071942p:plain

②結果は以下の様になります。シートが3つ(Sheet1・Sheet2・Sheet3)あるため「シート数 = 3」が表示されます。

f:id:m_kbou:20210307071953p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

開いているブック内のシート数を取得する方法についての説明は以上です。

 

おわりに

今回は開いているブック内のシート数を取得する方法について説明しました。類似した内容に開いてるブックの数を取得するもあります。一緒に覚えておくとプログラミングの幅が広がります。