【エクセルマクロ】シート名を一括変更する:使用例6選

VBA-シート名を一括変更-アイキャッチ ExcelVBA

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

シート名を一括変更(連番)

以下のExcelVBAを実行すると、シート名を連番に変更します。


Sub シート名一括で変える()

Dim Ws As Worksheet
Dim Cnt As Long

    '開始番号
    Cnt = 1
    
    '全シートをループ
    For Each Ws In Worksheets
    
        'シート名を変更する
        Ws.Name = Cnt
        
        '開始番号にプラス1をする
        Cnt = Cnt + 1
    Next Ws

End Sub

マクロ実行前

「Sheet1」~「Sheet10」まで10枚のシートがあります。


 

マクロ実行後

シート名を「1」~「10」の連番に一括変更します。


 
 

シート名を一括変更(セル値参照)

以下のExcelVBAを実行すると、シート名をセルに入っている値に変更します。


Sub シート名一括で変える()

Dim Ws As Worksheet

    '全シートをループ
    For Each Ws In Worksheets

        'シート名を変更する
        Ws.Name = Ws.Range("A1").Value

    Next Ws

End Sub

マクロ実行前

「Sheet1」~「Sheet5」まで5枚のシートがあります。

各シートのセルA1に、シート名にしたい値を入力しておきます。


 

マクロ実行後

セルの値をシート名に自動変更します。

シート名に使用できない値や重複した値がある場合、マクロエラーが発生します。


 
 

シート名を一括変更(日付増加)

以下のExcelVBAを実行すると、シート名を日付プラス1日に変更します。


Sub シート名一括で変える()

Dim Ws As Worksheet
Dim D As Date

    '最初の日付
    D = CDate("2021/5/1")
    
    '全シートをループ
    For Each Ws In Worksheets
    
        'シート名を変更する
        Ws.Name = Format(D, "yyyymmdd")
        
        '日数にプラス1をする
        D = D + 1
    Next Ws

End Sub

マクロ実行前

「Sheet1」~「Sheet10」まで10枚のシートがあります。


 

マクロ実行後

シート名を連続した日付に一括変更します。


 
 

シート名を一括変更(置換)

以下のExcelVBAを実行すると、シート名を置換して変更します。


Sub シート名の変更()

Dim Ws As Worksheet

    '全シートをループ
    For Each Ws In Worksheets

        'シート名を置換する
        Ws.Name = Replace(Ws.Name, "Excel", "エクセル")

    Next Ws

End Sub

マクロ実行前


 

マクロ実行後

各シート名の「Excel」を「エクセル」に置換します。


 
 

シート名を一括変更(特定名称へ変更_パターン①)

以下のExcelVBAを実行すると、シート名を特定の名前に変更します。


Sub シート名一括で変える()

Dim Ws As Worksheet
    
    '全シートをループ
    For Each Ws In Worksheets
    
        'シート名を変更
        Select Case Ws.Name
        
            Case "A"
                Ws.Name = "W"
        
            Case "B"
                Ws.Name = "X"

            Case "C"
                Ws.Name = "Y"
        
            Case "D"
                Ws.Name = "Z"
        End Select
    Next Ws

End Sub

マクロ実行前

「A」~「D」のシートがあります。


 

マクロ実行後

シート名を任意の名称に一括変更します。
・A → W
・B → X
・C → Y
・D → Z


 
 

シート名を一括変更(特定名称へ変更_パターン②)

以下のExcelVBAを実行すると、配列を使用してシート名を特定の名前に変更します。


Sub シート名一括で変える()

Dim Ws As Worksheet
Dim Buf1 As Variant
Dim Buf2 As Variant
Dim i As Long
Dim j As Long

    '変更前のシート名を配列格納
    Buf1 = Array("A", "B", "C", "D")
    
    '変更後のシート名を配列格納
    Buf2 = Array("W", "X", "Y", "Z")

    '全シートをループ
    For i = 1 To Sheets.Count
    
        '配列をループ
        For j = 0 To UBound(Buf1)
        
            'シート名が配列[Buf1]と一致したら
            If Sheets(i).Name = Buf1(j) Then
            
                'シート名を配列[Buf2]に変更
                Sheets(i).Name = Buf2(j)
                Exit For
            End If
        Next
    Next

End Sub

マクロ実行前

「A」~「D」のシートがあります。


 

マクロ実行後

シート名を任意の名称に一括変更します。
・A → W
・B → X
・C → Y
・D → Z


 
 
この記事がお役に立ちますと幸いです。
 

・【エクセルマクロ】シートの追加・削除を自動化まとめ
 

【エクセルマクロ】シートの追加・削除を自動化:超便利12選
...

 

「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!