Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Excel VBA】シート名を一括変更するマクロ(連番・一括置換対応)

Excelでシートが大量にあると、
シート名の変更がとても面倒になります。

例えば👇

  • Sheet1, Sheet2 → 日付付きに変更したい

  • 売上_1, 売上_2 → 連番にしたい

  • 「2023」→「2024」に一括変更したい

この記事では、シート名を一括変更するマクロをわかりやすく解説します。


方法①:連番でシート名を変更

 
 
Sub RenameSheets()
    Dim i As Long
    For i = 1 To Worksheets.Count
        Worksheets(i).Name = "Sheet_" & Format(i, "000")
    Next i
End Sub
 

実行結果

 
Sheet_001
Sheet_002
Sheet_003


方法②:文字を置換して変更

 
Sub ReplaceSheetNames()

    Dim ws As Worksheet
    For Each ws In Worksheets
        ws.Name = Replace(ws.Name, "2023", "2024")
    Next ws

End Sub


方法③:セルの値を使って変更

 
Sub RenameFromCells()

    Dim i As Long
    For i = 1 To Worksheets.Count
        Worksheets(i).Name = Cells(i, 1).Value
    Next i

End Sub

👉 A列の値で名前変更


注意点(重要)

シート名の重複はNG

同じ名前は使えません。

👉 エラーになります


使えない文字

 

\/:*?[]

👉 シート名に使えない


まとめ

方法 内容
連番 自動命名
Replace 一括変更
セル参照 柔軟