セルの文字列をシート名にするマクロ
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セルにタイトルが入ってない場合でも、以前のシート名のままで終了しますから、個別に変更するなどしてください。
お疲れ様でした。