今回は、Excelシートに入力している文字列を一発でシート名にマクロを解説します。
シート名を作る時って、シートに入力している一覧から作成することが多いかと思います。その場合、イチからシート名を1つ1つ入力してくのはとても面倒です。
せっかく、一覧に文字列があるなら、その文字列をシート名に設定できるようにしましょう。
マクロコードが3行で完結できるとても簡単なマクロなので、この記事を真似するだけで簡単に作ることができます。
関連記事 【ExcelVBA】一覧表からシート名をまとめて作成する方法
実行イメージ
今回の記事に関してご不明な点があれば、問合せフォームからご連絡ください。
<動作確認環境>
- Windows 10 Home(バージョン22H2)
- Microsoft Office Professional Plus 2019
▼この記事を書いたひと
筆者のRYO。MOSマスター資格者。Excel操作テクニックやマクロVBA知識が豊富。本業で日々Excelを使い倒しており、現場に近いExcelの悩み解決が得意。
マクロコード
▼マクロコード(コピペ用)
1 2 3 |
Sub シート名作成() ActiveSheet.Name = ActiveCell.Value End Sub |
「ActiveSheet.Name = ActiveCell.Value」で「アクティブシート名にアクティブセルの文字を代入する」という意味です。
Name プロパティ
Excel VBAでシート名取得するには、 「Name プロパティ」を使用します。
現在アクティブなシートは「ActiveSheet 」ですから、 ActiveSheet.Name = ActiveCell.Value で、「アクティブシート名にアクティブセルの文字を代入する」 という意味になります。
シート名に使えない文字があるので注意ください。
使えない文字を使用した場合は、マクロがエラーになります。
シート名に使用できない文字一覧
- コロン (:)
- バックスラッシュ ()
- スラッシュ (/)
- クエスチョンマーク (?)
- アスタリスク (*)
- ブラケット ([], {})
- シングルクォート (')
- ダブルクォート (")
- グレーターサイン (>)
- レスサイン (<)
- ピリオド (.)
- セミコロン (;)
- バーティカルバー (|)
実行時エラーが表示された場合は、「終了」ボタンをクリックしてから、 これらの使えない文字を含まないセルを選ぶか、使えない文字を削除後、マクロを再実行しましょう。
このマクロを個人用マクロブックや、Excel2007以降なら、クイックアクセスツールバーにボタンを登録しておくと便利です。
Name プロパティの応用
ActiveSheet.Name = ActiveCell.Value を反対にしたら、どうなるでしょうか?
つまり、こういうこと
1 2 3 |
Sub シート名を選択セル入力() ActiveCell.Value = ActiveSheet.Name EndSub |
実行すると、シート名がアクティブセルに入力されます。
以下のようにRange("A1").Valueに変えれば、シート名がA1セルに入力されます。
1 2 3 |
Sub シート名を選択セル入力() Range("A1").Value = ActiveSheet.Name EndSub |
シート名から文字列にしたい時は、この方法でお試しください。
今回の解説は以上です!
記事に関する質問やお問い合わせがあれば、問い合わせフォームからご連絡ください。