Excel VBA シート名をプログラムで自動的に変更する方法

 

Excel VBAで「シート名変更」で、シートの名前をプログラムで動的に変更できます。手動で変更するのではなく、VBAコードを使って名前を変更することで、自動化が可能です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA シート名変更の利用

以下のようなシーンで利用されます。

・データをインポートするたびにシート名に日付を付けて管理

・複数のレポートを生成する際に、それぞれのシート名をプロジェクト名やカテゴリに変更

・多くのシートがある場合、目的に応じてシート名を整理して変更

 

Excel VBA シート名変更|使い方とポイント

使い方

シート名を変更するには、Nameプロパティを使います。対象となるシートを特定して、そのNameプロパティに新しい名前を代入します。

 

ポイント

・重複禁止
同じブック内でシート名が重複するとエラーが発生します。既に使用されている名前を避けましょう。

・長すぎる名前に注意
シート名は31文字までで、これを超えるとエラーになります。

・特殊文字の使用制限
シート名には、/、\、?、*、[、]などの特殊文字を使用できません。

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA シート名変更のサンプルコード

特定のシート名を変更

Option Explicit

Sub RenameSheet()
    ' "Sheet1" のシート名を "データシート" に変更
    Worksheets("Sheet1").Name = "データシート"
End Sub

 

このコード、「なんとなくコピペ」で済ませていませんか?

“今の自分のVBAスキル”を、点数で見える形にしてみませんか?

※この教材は「試験対策」も「実力診断」も、どちらにも対応しています。

 

現在のシート名を日付に変更

Option Explicit

Sub RenameSheetToDate()
    ' アクティブなシートの名前を現在の日付に変更
    ActiveSheet.Name = Format(Date, "yyyy-mm-dd")
End Sub

マクロができる人が少ない職場
数年後にはあなたより効率的な後輩にポジションを奪われるかもしれません。
👉 詳細はこちら

複数のシート名を順番に変更

Option Explicit

Sub RenameAllSheets()
    Dim ws As Worksheet
    Dim i As Integer
    i = 1
    
    ' 全シートを順に名前を「シート1」、「シート2」...に変更
    For Each ws In ThisWorkbook.Worksheets
        ws.Name = "シート" & i
        i = i + 1
    Next ws
End Sub

1.Worksheets("Sheet1").Name = "データシート"
"Sheet1" のシート名を "データシート" に変更します。

2.ActiveSheet.Name = Format(Date, "yyyy-mm-dd")
アクティブなシート名を、現在の日付("2024-09-07"のような形式)に変更します。

3.For Each ws In ThisWorkbook.Worksheets
全てのシートをループして、それぞれ順番に名前を変更しています。

ExcelVBAを使ったシート名の変更は、シート管理の自動化やプロジェクトに応じた動的な処理に役立ちます。手動で名前を付ける手間を省き、エラーを防ぐためにも、シート名の変更をVBAで適切に処理することが重要です。

「できてるはず」──そう思っていても、
「このやり方、本当に正しいのかな…?」と感じたことはありませんか?

VBAを実務で使いこなしているあなたへ。

“今の自分のVBAスキル”を、点数で見える形にしてみませんか?

※この教材は「試験対策」も「実力診断」も、どちらにも対応しています。