こんにちは、今回の記事はExcelのSheet番号を変更するにはどうすれば?という記事になります。Excelのシート名とは別に、シート番号(オブジェクト名)のについてです。
Sheet1、Sheet2、Sheet3のシートを作成した後、Sheet3を削除して新たなシートを追加するとSheet4が出来ます。
Sheet1(Sheet1)
Sheet2(Sheet2)
Sheet4(Sheet4)
だけど、連番になっていないのが嫌だったのでシート名を「Sheet4」→「Sheet3」変更して、シート名は連番に揃えたものの、シート番号は「Sheet4」のまま。
Sheet1(Sheet1)
Sheet2(Sheet2)
Sheet3(Sheet4)
VBE(Visual Basic for Applications)を開いてみるとシート名とシート番号がズレている状態に。
と思いましたので、今回手動でシート番号(オブジェクト名)を修正する方法とVBAマクロでまとめて複数のシート番号(オブジェクト名)を修正する方法をまとめてみました。それでは、いってみましょう!
手動でシートのオブジェクト名を修正する方法
手動でシートのオブジェクト名を修正するには、以下の手順で名前変更が出来ます。
- [開発]タブ > [Visual Basic]
※Microsoft Visual Basic for Applicationが起動する - 左側のシート一覧より変更したいシートを選択しておく
- [表示] > [プロパティウィンドウ]をクリック
- [(オブジェクト名)]を任意の名前に変更する
これで、シート番号(オブジェクト名)が変更できます。
オブジェクト名は「Sheet1」「Sheet2」「Sheet3」、となっていますが、オブジェクト名はSheetで始まる必要はなく、「estimate」とか「apple」とか何でも良いです。
マクロでシートのオブジェクト名を修正する方法
シートの数が多い場合、ひとつずつ名前を変更するのは面倒かもしれません。その場合、マクロでもオブジェクト名を変更することが出来ます。サンプルマクロは以下です。
Sub sheetObjNameChange()
' 一時的にシート名を変更
For i = 1 To Sheets.Count
Worksheets(i).Active
ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName) = "Tmp" & i
Next i
' シート名を変更
For i = 1 To Sheets.Count
Worksheets(i).Active
ActiveWorkbook.VBProject.VBComponents(ActiveSheet.CodeName) = "Sheet" & i
Next i
End Sub
一度「Tmp1」「Tmp2」「Tmp3」…という一時的に名前へ変更し、その後「Sheet1」「Sheet2」「Sheet3」という名前に変更しています。
"Sheet"の部分を好きな名前に変更することで、好きなオブジェクト名を指定する事が出来ます。
さいごに
いかがだったでしょうか。同じような疑問を持たれている方の参考になれば幸いです。シート名自体の名前変更については以下の別記事にまとめています。
それでは、また!