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 関数の書き方

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です