今回はExcel VBAを使って「ワークシート名の一覧を作る方法」をわかりやすく説明します。
エクセルで大量のシートを使っていると「どのシートがあったかな?」と探すのが大変です。
そんなときVBAで自動的にシート一覧を作れば作業がグッと楽になります。
この記事では、
✅ ワークシート名一覧を自動作成するVBAコード
✅ コードの詳しい説明
✅ コードを使うときの注意点
を詳しく説明します。
ワークシート名一覧作成のメリット
まず、なぜワークシート名の一覧を作ると便利なのか?
メリットは次の3つです:
- シートが多くても一目で確認できる
- シート間リンクやマクロ作成時に役立つ
- ファイルの管理が楽になる
例えばプロジェクト管理ファイルや月別売上ファイルなど、シートが10枚以上になると探すのが手間です。一覧を作っておけばクリック1つでシートに移動も可能です。
コードの書き方と手順
VBAエディタを開く
1.Excelファイルを開く
2.Alt + F11キーで「VBAエディタ」を表示
3.挿入 → 標準モジュール をクリック
コードを貼り付ける
以下のコードをコピーして貼り付けます。
Sub シート名一覧を作成()
Dim ws As Worksheet
Dim listSheet As Worksheet
Dim i As Long
' 既に「SheetList」という名前のシートがあれば削除
Application.DisplayAlerts = False
On Error Resume Next
Worksheets("SheetList").Delete
On Error GoTo 0
Application.DisplayAlerts = True
' 新しいシートを作成
Set listSheet = Worksheets.Add
listSheet.Name = "SheetList"
' 見出しを作成
listSheet.Cells(1, 1).Value = "ワークシート名一覧"
' ワークシート名を順番に書き出す
i = 2
For Each ws In Worksheets
If ws.Name <> "SheetList" Then
listSheet.Cells(i, 1).Value = ws.Name
i = i + 1
End If
Next ws
MsgBox "シート名の一覧を作成しました!", vbInformation
End Sub
マクロを実行する
1.F5キーを押すか、メニューから▶実行をクリック
2.「SheetList」という名前のシートが自動作成され、一覧が表示されます
コードの説明
コードのポイントを順番に説明します。
Dim ws As Worksheet
Dim listSheet As Worksheet
Dim i As Long
変数の宣言です。
wsは順番にシートを処理するための変数。listSheetは一覧を作る新しいシート。iは行番号カウンターです。
Application.DisplayAlerts = False
On Error Resume Next
Worksheets("SheetList").Delete
On Error GoTo 0
Application.DisplayAlerts = True
すでに「SheetList」というシートが存在していた場合、削除します。
警告メッセージを表示しないようにするためにDisplayAlerts = Falseを使っています。
Set listSheet = Worksheets.Add
listSheet.Name = "SheetList"
新しいシートを作って名前を「SheetList」にします。
listSheet.Cells(1, 1).Value = "ワークシート名一覧"
新しいシートのA1セルに見出しを入れています。
i = 2
For Each ws In Worksheets
If ws.Name <> "SheetList" Then
listSheet.Cells(i, 1).Value = ws.Name
i = i + 1
End If
Next ws
すべてのワークシートを順番にチェックして、一覧シート以外のシート名を書き出します。
2行目から順に入力するので、iは2から始まります。
MsgBox "シート名の一覧を作成しました!", vbInformation
完了メッセージを表示します。
よくあるエラーと対処法
シート名が重複して削除できない
他のマクロや保護シートがあると削除できないことがあります。
その場合は一覧シートを手動で削除してください。
マクロが実行できない
マクロが有効になっているか確認しましょう。
ファイル → オプション → セキュリティセンター → マクロの設定で有効になっているかを確認してください。
まとめ
今回は、Excel VBAでワークシート名一覧を作る方法を説明しました。このコードを使えば、手作業でシート名を確認する必要がなくなります。ぜひ今回のコードを試して、作業を効率化してみてください。