このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】シート名の一覧を取得する方法(Nameプロパティ)

2024年10月27日

今回はシート名の一覧を取得する方法を紹介します。

ブック内のシート名を一度に取得することができます。

シート名を書き出したいときや、特定のシートだけ処理したいときに活用してみてください。

この記事では↓の内容が分かります。

  • マクロブック内のシート名一覧を取得する方法
  • シート名一覧をセルに書き出す方法
  • アクティブブック内のシート名一覧を取得する方法

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

マクロブック内のシート名一覧を取得する方法

Sub SheetName_ThisWorkbook()
    '''マクロブック内のシート名を書き出す
    
    Dim ws As Worksheet
    
    ' 全てのシート名を取得するループ
    For Each ws In ThisWorkbook.Sheets
        Debug.Print ws.Name
    Next
End Sub

このコードを実行すると、全てのシート名が1つずつイミディエイトウィンドウに出力されます。

イミディエイトウィンドウはVBEでCtrl+Gを押すと表示されます。

シート名一覧をセルに書き出す方法

Sub OutputSheetName_ThisWorkbook()
    '''マクロブック内のシート名をセルに書き出す
    
    ' シート名を出力するセルの行番号
    Dim rowNum As Integer
    rowNum = 1
    
    ' 全てのシート名を取得するループ
    For Each ws In ThisWorkbook.Sheets
        Cells(rowNum, 1).Value = ws.Name
        rowNum = rowNum + 1
    Next
End Sub
実行結果(例)

先ほどのコードはイミディエイトウィンドウに出力しました。

それを少し改変すると、このようにシート名一覧をセルに書き出すことができます。

アクティブブック内のシート名一覧を取得する方法

Sub SheetName_ActiveWorkbook()
    '''アクティブブック内のシート名を書き出す
    
    Dim ws As Worksheet
    
    ' 全てのシート名を取得するループ
    For Each ws In ActiveWorkbook.Sheets
        Debug.Print ws.Name
    Next
End Sub

ここまでの2つのコードではマクロブック内のシート名を取得しました。

現在アクティブなブックのシート名一覧を取得したいActiveWorkbook.Sheetsへ変更してみてください。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/11/21 14:41:17時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい