【Excel VBA】セルに入力すると自動で当日の日付が入る仕組みを作る方法

Excel関係

普段の仕事でExcelで在庫、入出庫の管理や作業記録を入力する機会がある方は
経験があるかもしれませんが
一行打ち込む毎に横に日付をいれたりするのは面倒くさくないですか?
コピペ、Ctrl+;で入れるだけなので大きな手間ではありませんが

数量を入力したら隣のセル(もしくは指定したセル)に当日の日付が入ったら入れ忘れも
無くなるので便利だと思いませんか?

VBAを使えば簡単に便利な状態にすることができます。
今回はそんな方法をこの記事で紹介いたします。


どんなことができるようになるの?

この記事に載せられたコードを入れることで
指定した列に数量(時間)を入力したらその横のセルに日付が入ることになります。

こんな動きになる予定です。

A列:入庫数量B列:入庫日
12 → 入力2025/11/24 が自動入力
空欄空欄のまま
数値 → 0以外今日の日付

実際にコードを入れてみよう。

今回はA列に数字を入力したらB列に入庫日が入るようにしてあります。
この辺りはご自身の使いやすいように設定を変えて貰ってください。

Visual Basicを開き、標準モジュールではなく、対象シート(sheet1)のコードウィンドウ
に下のコードを貼り付けます。

Private Sub Worksheet_Change(ByVal Target As Range)

    ' A列(1列目)に変更があった時だけ実行
    If Not Intersect(Target, Range("A:A")) Is Nothing Then
        
        ' 入力された値が空白でない場合のみ実行
        If Target.Value <> "" Then
            ' 隣のB列に今日の日付を入力
            Target.Offset(0, 1).Value = Date
        Else
            ' A列が空欄ならB列も空欄にする(任意)
            Target.Offset(0, 1).Value = ""
        End If
        
    End If

End Sub

コードについて。

ざっくりとコードについて説明します。

● Worksheet_Change

そのシートで値が変更された時に自動で動くイベント。

● Intersect(Target, Range("A:A"))

「変更されたセルが A列かどうか」を確認。

● Target.Offset(0,1).Value = Date

変更されたセルの 右隣(1列右) に今日の日付を入れる。

  • Offset(0,1) →「行はそのまま、列を1つ右」
  • Date → 今日の日付(例:2025/11/24)

なのでOffsetの()内を変更すれば自分で指定したセルに今日の日付を入れることができるようになります。


実際にA列に数字を入れるとこのようになります。

日付に関しては、書式設定で表示の仕方を変えてコンパクトにするのも良いかもしれませんね!


終わり。

今回の記事ではセルに自動で日付を入れる方法についてご紹介しました。
作業日の入れ忘れにより後で確認が取れなくなるということもありますので
今回を機に仕事で使っているExcelに一工夫してみるのはどうでしょうか?

コメント

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