Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » シート名を日時に変更する・シート名に日付を追加するExcelマクロ

シート名を日時に変更する・シート名に日付を追加するExcelマクロ

対象:Excel2007, Excel2010, Excel2013

「excel マクロ シート名 変更 日付」
「エクセル マクロ シート名に日付」
「マクロ エクセルシート名を現在の日付時間を入れる方法」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

シート名を日付や時刻にしたり、現在のシート名に日付や時刻を入れたりする、Excelマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

アクティブなシートを現在の日時にするサンプルマクロ

以下のようなマクロでアクティブなシートを、現在の年・月・日・時・分・秒を「yyyymmdd-hhmmss」という形式にしたシート名にすることができます。

Sub シート名を現在の日時にする()

 ActiveSheet.Name = Format(Now, "yyyymmdd-hhmmss")

End Sub

VBAでは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」という形式で追加したシート名にすることができます。

Sub シート名に今日の日付を追加する()

 Dim sh_name As String

 sh_name = ActiveSheet.Name
 ActiveSheet.Name = sh_name & Format(Date, "mmdd")

End Sub

変数・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マクロ

「VBA関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.
.