Excelの全ワークシート名を一覧化!使えるVBAマクロを紹介

Excelの全ワークシート名を一覧化!使えるVBAマクロを紹介

Excelブック内の全てのワークシート名を一覧化したいと思ったことはありませんか?今回は、そんなニーズに応えるVBAマクロの紹介をします。

このマクロができること

  • ブック内のすべてのワークシート名を一覧化し、選択したセルの位置からリストアップ
  • 各シートが表示状態かどうかも合わせて出力

マクロのVBAコード

以下のコードをVBE(Altキー+F11キーで起動)の標準モジュールへ貼り付けてください(挿入→標準モジュール)。

Sub ExportSheetData()
    Dim sht As Object
    Dim startCell As Range
    Dim originalSelection As Range
    Dim nextRow As Long
    Dim response As VbMsgBoxResult
    ' もともと選択していたセル・範囲を記憶
    Set originalSelection = Selection
    'セルの指定
    On Error Resume Next
    Set startCell = Application.InputBox("シート名の起点となるセルを選択してください", Default:=originalSelection.Address, Type:=8).Cells(1, 1)
    On Error GoTo 0
    'セル指定がキャンセルされた場合、終了
    If startCell Is Nothing Then Exit Sub
    '確認メッセージ
    response = MsgBox("このセルより2列分、下の行がすべて削除されますが書き出してもよいですか?", vbOKCancel)
    If response = vbCancel Then Exit Sub
    'ヘッダーの書き出し
    startCell.Value = "Name"
    startCell.Offset(0, 1).Value = "Visible"
    '次の行への書き出しの準備
    nextRow = startCell.Row + 1
    'シートの情報を書き出し
    For Each sht In ThisWorkbook.Sheets
        startCell.Worksheet.Cells(nextRow, startCell.Column).Value = "'" & sht.Name
        startCell.Worksheet.Cells(nextRow, startCell.Column + 1).Value = "'" & CStr(sht.Visible = xlSheetVisible)
        nextRow = nextRow + 1
    Next sht
    originalSelection.Select
End Sub

マクロ実行の手順

  1. マクロをVBAエディタに取り込みます(標準モジュールへ挿入)。
  2. Excel上でマクロを実行するセルを選択します。ExportSheetDataマクロを実行します(Altキー+F8キーでマクロリストが表示されるので選んで実行)。
  3. マクロを実行すると、起点となるセルを指定するインプットボックスが表示されます。

  4. 実行時注意が表示されます。
  5. セルを指定し、「OK」をクリックすると、ブック内の全ワークシート名とその表示状態が一覧化されます。非表示シートの場合は「Visible」列が「False」となります。

注意点

マクロを実行すると、指定したセルからの2列分、下の行がワークシートの数だけ削除されます。重要なデータが存在する場所に対してマクロを実行しないように注意してください。

「5月11日」のように文字列型以外のデータが作成されることを防ぐため、すべてのデータの先頭に「’」が付与される設定になっています。

まとめ

このVBAマクロを使用することで、ブック内のワークシート名の一覧化が簡単に行えます。日々の業務での小さなストレスや手間を軽減し、より効率的な作業をサポートします。

皆さんもぜひお試しください!

 

コメント