セルの文字列をシート名にするマクロ
Sheet1、Sheet2、Sheet3などいうシート名をわかりやすく名前変更するマクロの紹介です。

Excel2010 マクロ講座 31回
セルに入力されたタイトルをシート名に
毎月の売上シートなどは、いつのまにたくさん溜まってしまいますね。
Sheet1~Sheet12などとなってしまうと、シートの名前変更も1枚ごとでは大変です。
以前3行マクロ(mini_macro1.htm)でシート名を変更するマクロを紹介しましたが、今回は複数のシート名をいっぺんに設定するという内容です。
(サンプルファイルは、こちらから 2010マクロ講座31回サンプルデータ)
セルの文字列をシート名に
3行マクロのコードは、こんなに短いコードでした。
Sub シート名を選択セルの文字に()
ActiveSheet.Name = ActiveCell.Value
End Sub
今度は複数シートですので、同じ処理を繰り返して行う必要があります。
そんなときに役に立つのが、おなじみのFor Each~Nest
以下のようなブックで、どのシートにもA1セルにタイトルが入っているとします。


A1セルの値をシート名にするコードは、

Sub セルをシート名にする()
Dim mysheet As Worksheet
For Each mysheet In Worksheets
mysheet.Name = mysheet.Range("A1").Value
Next
End Sub

エラー対策
このサンプルの場合、A1セルにタイトルが入っているという前提のマクロですが、
もしも、A1セルにタイトルが入ってない場合は、エラーとなってしまいます。そこで、エラーを無視して、飛ばして処理を続行するというようコードを1行追加しましょう。
お疲れ様でした。
Sub セルをシート名にする2()
Dim mysheet As Worksheet
On Error Resume Next
For Each mysheet In Worksheets
mysheet.Name = mysheet.Range("A1").Value
Next
End Sub
これで、A1セルにタイトルが入っているシートはそのタイトルがシート名になります。
もし、A1セルにタイトルが入ってない場合でも、以前のシート名のままで終了しますから、個別に変更するなどしてください。お疲れ様でした。