【ExcelVBA】ブック内の全てのシート名を取得する方法について

この記事では、ブック内の全てのシート名を取得する方法についてご説明します。

【動画】ブック内の全てのシート名を取得する実際の動き

本題に入る前に、まずは次の動画をご覧ください。


Worksheetsオブジェクトを使い、シートの数だけループを回してシートの名前を取得しています。

コードの例

Excelのマクロのコード(例)

Option Explicit

Private Sub test()
    
    Dim ws      As Worksheet    'Worksheet用変数
    Dim cnt     As Integer      'カウンタ用変数
    
    'カウンタを初期化する
    cnt = 2
    
    'シートの数だけループする
    For Each ws In Worksheets
        
        'シート名をA列のセルに出力する
        Sheets("top").Range("A" & cnt).Value = ws.Name
        
        cnt = cnt + 1
        
    Next ws

End Sub

コードの解説

注目すべきコード①

最初に見て頂きたいのは12行目です。

    'シートの数だけループする
    For Each ws In Worksheets

ブック内のシート全てに対して何かしらの処理を行うようループを処理を行います。

今回はシート名を取得するためにブック内のシート分だけループします。

注目すべきコード②

最初に見て頂きたいのは15行目です。

        'シート名をA列のセルに出力する
        Sheets("top").Range("A" & cnt).Value = ws.Name

Worksheet用変数「ws」のnameプロパティにシートの名前が格納されているので、そのシート名がA列のセルに出力されます。

動作確認

動作確認①

マクロを実行する前のExcelの状態は次の通りです。(シート数:1)

マクロ実行前

ブックには「top」という名前のシートが1つ存在しています。

マクロ実行後

マクロを実行すると、A2のセルにシート「top」の名前が出力されます。

動作確認②

マクロを実行する前のExcelの状態は次の通りです。(シート数:3)

マクロ実行前

ブックには「top」「data1」「data2」という名前のシートが存在しています。

マクロ実行後

マクロを実行すると、A2のセルにシート「top」「data1」「data2」の名前が出力されます。

最後に

本記事では、ブック内の全てのシート名を取得する方法についてご説明しました。

Worksheetsオブジェクトを使うことで簡単にブック内の全てのシート名を取得することができます。

ブック内の全てのシート名を取得したい時は是非参考にしてみてくださいね。

プログラミングのスキルを習得するなら

プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。

プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。

→ TechAcademyの「1週間 無料体験」はこちら