Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » シート名に連番を振るExcelマクロ

シート名に連番を振るExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「エクセル vba 何枚目かをシート名に」
「エクセル vba 何枚目かを取得してシート名に」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

何枚目のシートなのかが簡単にわかるように、連番をシート名に付加するExcel VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

シート名に連番をつけるサンプルマクロ

以下のSubプロシージャを実行すると、現在のシート名の前に「1.」「2.」のような形で、連番が振られます。

Sub 連番をシート名に追加する()
 Dim i As Long

 For i = 1 To Sheets.Count
  Sheets(i).Name = _
    Left(i & "." & Sheets(i).Name, 31)
 Next i
End Sub

サンプルマクロの解説

全シートにFor~Nextループを回して、
  For i = 1 To Sheets.Count

元のシート名の前に、カウンター変数・iを利用して、連番を付加しています。
  Sheets(i).Name = _
    Left(i & "." & Sheets(i).Name, 31)

元々のシート名に長い名前がなければ、
  Sheets(i).Name = _
    i & "." & Sheets(i).Name
でもOKですが、Excelの仕様では32文字以上の名前を付けられないので、
    Left(i & "." & Sheets(i).Name, 31)
と、Left関数を使って31文字までにしています。

イミディエイトウィンドウからコードを実行してシート名に連番をつける

この程度のコードなら、イミディエイトウィンドウからコードを実行するというのも、ありでしょう。
▼操作概要:イミディエイトウィンドウからコードを実行してシート名に連番を振る
イミディエイトウィンドウに、
 for i = 1 to sheets.Count: sheets(i).name = i & "." & sheets(i).name: next
というコードを入力して[Enter]キーを押す

コードウィンドウで、「:」(コロン)をステートメントの末尾につけることで、複数のステートメントを1行に書くことができます。

イミディエイトウィンドウでもこのルールは同じで、
 for i = 1 to sheets.Count
   sheets(i).name = i & "." & sheets(i).name
の末尾に「:」をつけて1行にしたのが、
 for i = 1 to sheets.Count: sheets(i).name = i & "." & sheets(i).name: next
です。

シート名は31文字までという仕様も入れておくなら、
 for i = 1 to sheets.Count: sheets(i).name = left(i & "." & sheets(i).name, 31): next
です。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » シート名に連番を振るExcelマクロ

「Sheets・Worksheet」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.