
マクロでエクセルファイルを操作しているんだけど、
シートの名前をわかりやすい名前に変更したい…。
マクロでシート名を変更できないの?

なるほど…。
わかりやすい名前をつけるのはいいことです。
「Sheet1」「Sheet2」では、何のデータなのかわかりにくいですよね。
では今回は、「エクセルのシート名を変更するマクロ」を
VBAマクロ歴3年の私が、できるだけわかりやすく解説いたします。
エクセルのシート名を変更するマクロ(VBA)
「Name」を使ってシート名を変更します。
まずは実行見本をどうぞ。
実行見本
ひとまず全コードと実行結果をご覧ください。
解説は後ほど行います。
全コード
Sub シート名を変更()
Worksheets("Sheet1").Name = "Utataneシート"
End Sub
実行結果

解説
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
プロシージャの作成
Sub シート名を変更()
End Sub
プロシージャなど、マクロの基礎は下記記事でわかりやすく解説しております。
コードだけではなく、開発タブの表示からマクロの保存まで知りたい方はご参考ください。
シート名を変更
Worksheets("Sheet1").Name = "Utataneシート"
上記VBAコードにて、シート名を変更しております。
【 Worksheets(“変更前のシート名“).Name = “変更後のシート名“ 】
今回は「Sheet1」を「Utataneシート」という名前に変更しました。

シート名は「”(ダブルクォーテーション)」で囲ってください。
マクロが完成したら、実行して動作を確認してみましょう。

エクセル内に作成した自作のボタンを押してマクロを実行させることも可能です。
ボタンの作り方は、下記記事でわかりやすく解説しております。
いろいろな方法(シート名変更)
変更前のシート名がわからなくても、シート名を変更できます。
下記のVBAコードを見てください。
ActiveSheet.Name = "Utataneシート"
「Worksheets()」ではなく、「ActiveSheet(現在選択されているシート)」を指定することにより、変更前のシート名を指定しなくても、シート名の変更が可能です。

選択されていないシートでもシート名を変更できます。
Worksheets(1).Name = "Utataneシート"
上記VBAコードのように、シート番号で指定することで、選択されていない名前不明のシートでもシート名を変更できます。
()内の数字の1は1番目(一番左)のシートを示しています。
左から2番目のシート名を変更したい場合は、(2)に変えてください。
一番右のシートの名前を変更したい場合は、下記コードのように(Sheets.Count)を指定してください。
Worksheets(Sheets.Count).Name = "Utataneシート" '一番右のシートの名前を変更
A1セルの値をシート名にすることもできます。
Sub シート名を変更4()
Dim name As String
name = Range("A1").Value
Worksheets(1).name = name
End Sub

VBAコードの2行目で、文字列型の変数を宣言しております。
変数や宣言については下記記事で詳しく解説しておりますので、ご参考ください。
3行目で変数にA1セルの値を代入し、
4行目で変数の値をシート名に指定しています。
この「name」は変数のため、「”」で囲わなくて大丈夫です。
シート名を変更する際の注意点
シート名を変更する際の注意点を2つ紹介いたします。
つけることができないシート名がある
下記に該当する名前はつけることができず、エラーが発生します。
- 31文字を超える名前(全角・半角ともに1文字は1文字とカウントされる)
- 「:」「\」「/」「?」「*」「[」「]」が入った名前(全角・半角ともにダメ)
- シート名なし(空白)

シート名はできるだけ短く、記号は使わないようにしましょう。
同じ名前のシート名が存在していたら…
変更後のシート名と同じ名前のシートが既に存在している場合、エラーが発生します。

日付や連番を入れるなどして、シート名が重複しないようにするのも一つの手です。
うまく動作しないときの対処法
エラーが発生する
コンパイルエラー・実行時エラー
コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。
今回の場合は、同じ名前のシートが存在していたり、付けられないシート名を指定した可能性があります。
前項をご参考ください。
警告表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。
最後に
エクセルのシート名を変更するマクロ(VBAコード)を紹介・解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!