Vba: ワークブック内のシート数を数える方法
Excel でブック内のシートの数を数えるには、次の方法を使用できます。
方法 1: アクティブなブック内のシートの数を数える
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
方法 2: 開いているブック内のシートの数を数える
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
方法 3: 閉じたバインダー内の枚数を数える
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
次の例は、これらの各メソッドを実際に使用する方法を示しています。
例 1: アクティブなワークブック内のシートの数を数える
次の Excel ワークブックを開いて表示しているとします。
次のマクロを使用して、このブック内のシートの合計数をカウントし、その数をセル A1 に表示できます。
SubCountSheetsActive ()
Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA1に値6が含まれていることに注意してください。
これは、このワークブックには 6 つのシートがあることがわかります。
例 2: 開いたバインダー内のシートの数を数える
my_data.xlsxという Excel ワークブックがあり、2 つのシートが開いていますが、現在は表示していないとします。
次のマクロを使用して、このブック内のシートの合計数をカウントし、その数をアクティブなブックのセル A1 に表示できます。
SubCountSheetsOpen ()
Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA1に値2が含まれていることに注意してください。
これは、開いているワークブックにmy_data.xlsxという 2 つのシートがあることがわかります。
例 3: 閉じたバインダーの枚数を数える
my_data.xlsxという Excel ワークブックがあり、そのシートは現在開いていませんが、次のファイルの場所にある 2 つのシートがあるとします。
C:\ユーザー\ボブ\デスクトップ\my_data.xlsx
次のマクロを使用すると、このブック内のシートの合計数をカウントし、アクティブなブックの最初のシートのセル A1 にその数を表示できます。
SubCountSheetsClosed ()
Application.DisplayAlerts = False
Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
'count sheets in closed workbook and display count in cell A1 of current workbook
ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count
wb.Close SaveChanges:=True
Application.DisplayAlerts = True
End Sub
このマクロを実行すると、次の出力が表示されます。
セルA1に値2が含まれていることに注意してください。
これは、閉じたブック内にmy_data.xlsxという名前の 2 つのシートがあることがわかります。
注: コード内で、 Application.DisplayAlerts=False は、閉じたブックを開いてシートを数えてからブックを閉じるプロセスを表示しないように VBA に指示します。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 範囲内の行数をカウントする方法
VBA: 特定のテキストを含むセルを数える方法
VBA: COUNTIF 関数と COUNTIFS 関数の書き方