「excel マクロ シート名 変更 日付」
「エクセル マクロ シート名に日付」
「マクロ エクセルシート名を現在の日付時間を入れる方法」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
シート名を日付や時刻にしたり、現在のシート名に日付や時刻を入れたりする、Excelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。
アクティブなシートを現在の日時にするサンプルマクロ
以下のようなマクロでアクティブなシートを、現在の年・月・日・時・分・秒を「yyyymmdd-hhmmss」という形式にしたシート名にすることができます。
ActiveSheet.Name = Format(Now, "yyyymmdd-hhmmss")
End SubVBAではNow関数で、現在の日付と時刻を取得できます。
Now関数で取得した現在の日時を、Format関数でyyyymmdd-hhmmss形式にしているのが「Format(Now, "yyyymmdd-hhmmss")」です。
yyyymmdd-hhmmss形式にした文字列を、アクティブなシートのNameプロパティに指定しています。
時刻部分が不要で、yyyymmdd形式の日付にしたいのなら、
ActiveSheet.Name = Format(Now, "yyyymmdd")
あるいは、Now関数ではなくDate関数を使って
ActiveSheet.Name = Format(Date, "yyyymmdd")
としてもOKです。
アクティブシートなシート名に日付を追加するサンプルマクロ
以下のようなマクロでアクティブなシート名に、今日の日付の月と日を「mmdd」という形式で追加したシート名にすることができます。
Dim sh_name As String
sh_name = ActiveSheet.Name
ActiveSheet.Name = sh_name & Format(Date, "mmdd")
変数・sh_nameに、現在のシート名を格納しておいてから、
sh_name = ActiveSheet.Name
先のマクロでも使ったFormat関数で現在の日付をmmdd形式にして、文字列連結演算子「&」で元のシート名とつなげています。
ActiveSheet.Name = sh_name & Format(Date, "mmdd")
現在のシート名と日付の間に、例えば「_」(アンダーバー・アンダースコア)を入れておきたいのなら、
ActiveSheet.Name = sh_name & "_" & Format(Date, "mmdd")
です。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » シート名を日時に変更する・シート名に日付を追加するExcelマクロ