Vbaを使用してシートをカウントするにはどうすればよいですか?
Excel では、多数のシートがある場合、手動で数を数えたり数式を使用したりする代わりに、VBA コードを使用してシートをすばやく数えることができます。したがって、この記事では、ワークブックのシートを数えるさまざまな方法を見ていきます。
アクティブなワークブック内のシートを数える
アクティブなワークブック シートをカウントするために使用する必要があるコードは次のとおりです。
ThisWorkbook.Sheets.Count
このコードでは、まず「ThisWorkbook」でアクティブなワークブックを参照し、すべてのシートを参照し、最後にcountメソッドですべてのシートをカウントしています。シートではなくワークシートをカウントしたい場合は、次のコードを使用します。
ThisWorkbook.Worksheets.Count
役立つリンク:マクロの実行–マクロ レコーダー– Visual Basic Editor –パーソナル マクロ ハンドブック
別のワークブックのシートを数える
ワークブックの名前を使用してそれを参照し、その中のシートをカウントすることができます。 「Book1」ワークブック内のシートをカウントするとします。
コードは次のとおりです。
Workbooks("sample-file.xlsx").Sheets.Count
このコードにより、「sample-file.xlsx」ワークブック内にあるシートの数がわかります。このバインダーを開くには、必要なものが 1 つあります。
開いているすべてのバインダーのシートを数える
複数のワークブックを同時に開くことができ、これらすべてのワークブック内のすべてのシートをカウントできます。
Sub vba_loop_all_sheets() Dim wb As Workbook Dim i As Long For Each wb In Application.Workbooks If wb.Name <> "PERSONAL.XLSB" Then i = i + wb.Sheets.Count End If Next wb MsgBox "Total sheets in all the open workbooks: " & i End Sub
閉じたバインダーの枚数を数える
ここには、システムのデスクトップに保存されているワークブックを参照するコードがいくつかあります。このコードを実行すると、このブックを背面で開き、その中のシートをカウントし、そのカウントをセル A1 に追加します。
Sub vba_count_sheets() Dim wb As Workbook Application.DisplayAlerts = False Set wb = Workbooks.Open("C:UsersDellDesktopsample-file.xlsx") ThisWorkbook.Sheets(1).Range("A1").Value _ = wb.Sheets.Count wb.Close SaveChanges:=True Application.DisplayAlerts = True End Sub
バックエンドでのファイルの開閉に関するアラートの表示を無効にしました。
VBAとは