Excel VBAでマクロ実行時に日付と時刻をセルに自動記録する方法

Visual Basic

Excelでマクロを実行したときに、その日時を自動的にシート上のセルに記録できると便利です。例えば、処理を行ったログを残したり、レポート作成の時刻を明示したいときに役立ちます。この記事では、VBAを使ってSheet1のセルA1に実行日時を「yyyy-mm-dd hh:mm」形式で自動的に記録する方法を紹介します。

VBAで実行日時を記録する基本コード

まずは、VBAエディタを開きます。Excelで「Alt + F11」を押すとVBAエディタが起動します。標準モジュールに以下のようなコードを記述します。

Sub TEST()
    Worksheets("Sheet1").Range("A1").Value = Format(Now, "yyyy-mm-dd hh:mm")
End Sub

このマクロを実行すると、現在の日付と時刻が自動的にSheet1のセルA1に書き込まれます。Format関数を使用することで、表示形式を「yyyy-mm-dd hh:mm」に整えています。

コードのポイント解説

Nowは、現在の日時を返すVBAの関数です。これに対してFormatを使うことで、任意のフォーマットに変換できます。例えば、「2025-10-21 15:30」のように表示できます。

また、Worksheets(“Sheet1”).Range(“A1”)で指定しているのは、記録先のセルです。別のシートやセルに変更したい場合は、シート名やセル参照を変更すればOKです。

別の書式を使いたい場合

用途によっては、日付と時刻の書式を変えたい場合もあります。例えば、以下のようなパターンもよく使われます。

  • Format(Now, "yyyy/mm/dd hh:mm:ss") → 秒まで記録
  • Format(Now, "yyyy年mm月dd日 hh:mm") → 和式表示
  • Format(Date, "yyyy-mm-dd") → 日付のみ記録

このように、表示形式を自由に変えることで、業務や記録の目的に応じたカスタマイズが可能です。

イベントと組み合わせて自動記録する

このマクロを単純に実行するだけでなく、イベントと組み合わせることで「ファイルを開いたとき」や「ボタンをクリックしたとき」など、自動的に日時を記録することも可能です。例えば、ワークブックを開いたタイミングで日時を記録する場合は以下のようにします。

Private Sub Workbook_Open()
    Worksheets("Sheet1").Range("A1").Value = Format(Now, "yyyy-mm-dd hh:mm")
End Sub

このコードは「ThisWorkbook」に記述します。Excelファイルを開くたびに、セルA1に実行日時が記録されます。

まとめ:日時記録はVBAで簡単に実装できる

Excel VBAを使えば、マクロ実行時の日時を簡単にセルに記録できます。基本的にはNowFormat関数を組み合わせるだけなので、初心者でもすぐに活用できます。記録先やフォーマットを変更すれば、さまざまな業務で応用可能です。ログ管理や更新履歴を残したいときに、ぜひ活用してみてください。

コメント

タイトルとURLをコピーしました