【Excel VBA】ワークシート名の一覧を作成する方法

Excel VBA

今回は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でワークシート名一覧を作る方法を説明しました。このコードを使えば、手作業でシート名を確認する必要がなくなります。ぜひ今回のコードを試して、作業を効率化してみてください。

 

タイトルとURLをコピーしました