シート名をNow関数を使用し日時に変更する|セルから取得:Excel VBA

シート名に日時を設定したい!との話があり、簡単かと思っていたら以外にコツがいったので掲載します。




Homeに戻る > Excelでよく使うフレーズへ

コツは下記になります。

  • NOW関数が入力されているセルから取得する場合、直前にシート再計算を実行し表示されている日時を更新する必要があります。
    そうしないと複数シート名を変更する場合、名前が重なりエラーになります。
  • シート名には「:」や「/」などが使用できないので、使用可能な文字に変換する必要があります。
    変換はFormat関数を使用しました。

ここでは、NOW関数が入力されているセルから取得し変更する方法方法と、VBAでNOW関数を実行する2種類を掲載します。

NOW関数については「今日の日付、今日の日付と時刻を求めるExcel関数」を参照してください。


セルから取得した日時にシート名を変更する

A1セルにNOW関数が入力されていて日時が表示されています。
シート名「Sheet1」を変更します。
NOW関数が入力されているシート

リボンの[開発]~コントロール グループの[コードの表示]をクリックします。
[コードの表示]をクリックする

VBE画面が表示されるので、下記のコードを入力し、矢印部分の[Sub/ユーザー フォームの実行(F5)]をクリックします。

VBAコードの説明

・Calculateで再計算し、NOW関数を更新します。
・更新が確実になるように、DoEventsを実行します。
・ Format関数でA1セルの日時を、別の書式に変換します。

Sub MyNowSet1()
    ActiveSheet.Calculate
    DoEvents
    ActiveSheet.Name = Format(Range("A1").Value, _
        "シート yyyy年m月d日 h時mm分ss秒")
End Sub

VBE画面

これで入力したVBAが実行され、シート名が日時に変わりました。
シート名が日時に変わった

VBAでNOW関数を実行しシート名を変更する

下の「Sheet2」を変更します。
「Sheet2」を変更する

下記のコードを入力し、矢印部分の[Sub/ユーザー フォームの実行(F5)]をクリックします。

VBAコードの説明

・日付型の変数t1にNOW関数で現在の日時を代入しています。
・ Format関数で変数t1の日時を、別の書式に変換します。

Sub MyNowSet2()
    Dim t1 As Date
    
    t1 = Now
    ActiveSheet.Name = Format(t1, _
        "シート yyyy年m月d日 h時mm分ss秒")
End Sub
VBAコードを入力する

「Sheet2」が日時に変わりました。
「Sheet2」が日時に変わった



■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved