文字列をSheet名にするマクロ
表のタイトルをシート名にする~すぐに役立つ3行マクロ
3行マクロ 1回
入力した文字列をSheet名にするマクロ
シート名は、分かりやすい名前に変更するに越したことはありませんが、
一度に大量のシートを作成する場合などは、ついつい、面倒に感じてしまいます。
しかし、大抵は、シートに作成した表のタイトルを、そのまま付ける場合が 多いですよね。
それなら、入力した文字列(表のタイトルあるいは選択セル)をシート名にするマクロを作っておけば、シートが何枚あってもさほど手間ではありません。
(サンプルファイルは、こちらから 3行マクロ1回サンプルデータ)
Excelバージョン:
表のタイトルをシート名にする
(1)表のタイトルをシート名にするという3行マクロです。
シート名はわかりやすい名前に変更するに越したことはないですけれども、 一度にに大量のシートを作成する場合などは、ついつい面倒に感じてしまいます。
シート名はわかりやすい名前に変更するに越したことはないですけれども、 一度にに大量のシートを作成する場合などは、ついつい面倒に感じてしまいます。
サンプルでは、ボタンにマクロコードを割り当てているので、セルを選択してから、
「選択シート名を選択セルの文字に変更」ボタンを押すとシート名が変わります。
例では、A2セルにSheet1という元のシート名が入力されているので、
選択セルをA2に変更すれば、シート名も変更できます。
文字列をSheet名にするマクロのコード
コードは、
下記のコードをコピーして、標準モジュールに貼り付ければ、そのまま使用できます。
下記のコードをコピーして、標準モジュールに貼り付ければ、そのまま使用できます。
Sub シート名を選択セルの文字に() ActiveSheet.Name = ActiveCell.Value End Sub
Name プロパティ
Excel VBAでシートの名前を取得する場合は、 name プロパティを使用します。
現在アクティブなシートはActiveSheet で取得できますから、
ActiveSheet.Name = ActiveCell.Value となります。
現在アクティブなシートはActiveSheet で取得できますから、
ActiveSheet.Name = ActiveCell.Value となります。
(2)このマクロには、一つ注意が必要です。 それは、シート名に使えない文字があること。
セルに「/」(スラッシュ)や「:」(コロン)など含まれると、シート名に使えない文字なので、当然ながらエラーとなります。
下記一覧にある文字(というより記号のような)は、シート名には使わないようにしましょう。
' * / : ? [ \ ] ’ ' * / : ? [ \ ] ¥
セルに「/」(スラッシュ)や「:」(コロン)など含まれると、シート名に使えない文字なので、当然ながらエラーとなります。
下記一覧にある文字(というより記号のような)は、シート名には使わないようにしましょう。
' * / : ? [ \ ] ’ ' * / : ? [ \ ] ¥
(3)実行時エラーが表示された場合は、「終了」ボタンをクリックしてから、 これらの使えない文字を含まないセルを選んで、マクロを再度実行しましょう。
このマクロを個人用マクロブックや、クイックアクセスツールバーにボタンを登録しておくと便利です。
このマクロを個人用マクロブックや、クイックアクセスツールバーにボタンを登録しておくと便利です。
Name プロパティの応用的なこと
このコードは、シート名はセルの値と同じという意味ですが、
ActiveSheet.Name = ActiveCell.Value セルの値は、シート名だというように、反対にしたら、どうなるでしょうか?
ActiveCell.Value = ActiveSheet.Name
ActiveSheet.Name = ActiveCell.Value セルの値は、シート名だというように、反対にしたら、どうなるでしょうか?
ActiveCell.Value = ActiveSheet.Name
Sub シート名を選択セル入力() ActiveCell.Value = ActiveSheet.Name End Sub実行すると、シート名がアクティブセルに入力されます。
以下のようにRange("A1").Valueに変えれば、シート名がA1セルに入力されます。
Sub シート名をA1セル入力() Range("A1").Value = ActiveSheet.Name End Sub