プチIT化 PR

【Excel】sheet番号を変更したい、連番にしたい、どうすれば?

記事内に商品プロモーションを含む場合があります。
当サイトは、アフィリエイト広告を利用しています。

こんにちは、今回の記事は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マクロでまとめて複数のシート番号(オブジェクト名)を修正する方法をまとめてみました。それでは、いってみましょう!

手動でシートのオブジェクト名を修正する方法

手動でシートのオブジェクト名を修正するには、以下の手順で名前変更が出来ます。

  1. [開発]タブ > [Visual Basic]
    ※Microsoft Visual Basic for Applicationが起動する
  2. 左側のシート一覧より変更したいシートを選択しておく
  3. [表示] > [プロパティウィンドウ]をクリック
  4. [(オブジェクト名)]を任意の名前に変更する

これで、シート番号(オブジェクト名)が変更できます。

オブジェクト名は「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"の部分を好きな名前に変更することで、好きなオブジェクト名を指定する事が出来ます。

さいごに

いかがだったでしょうか。同じような疑問を持たれている方の参考になれば幸いです。シート名自体の名前変更については以下の別記事にまとめています。

【Excel】シート名を連番にリセットして整えるには?マクロサンプルの紹介こんにちは。今回の記事は、Excelのシート名を連番にするマクロサンプルを紹介する記事です。 Excelのシートを追加すると、「S...

それでは、また!