Excel日付自動入力の罠と解決策!固定ワザと時短術徹底解説

Excel日付自動入力の罠と解決策!固定ワザと時短術徹底解説

Excel日付自動入力の罠と解決策!固定ワザと時短術徹底解説の注目されている理由を専門的かつ分かりやすくまとめました。全体像を一目で把握できます。

「担当者が商品名やステータスを入力した瞬間に、隣のセルへ本日の日付を自動で刻印したい」という要望は、受発注管理やタスク管理の現場で極めて高く支持されています。このExcel文字入力で日付自動反映を実現するには、2つのアプローチが存在します。

1. 関数のみで実現する循環参照(反復計算)テクニック

Excelのオプションで「反復計算」を有効化し、IF関数日付自動表示を組み合わせることで、マクロを使わずに文字入力時の日付固定が可能です。

設定手順:
①「ファイル」>「オプション」>「数式」を開き、「反復計算を行う」にチェックを入れる(最大反復回数は「1」)。
② A列にデータが入ったときB列に日付を入れる場合、B2セルに以下の数式を設定します。

=IF(A2="","",IF(B2<>"",B2,TODAY()))

この数式は「すでにB2に日付が入っていればその値を維持し、空白かつA2に文字が入った瞬間にだけTODAYを実行する」という自己参照ロジックです。ただし、この方法はブックの設定を共有者全員が正しく保持している必要がある点に留意してください。

2. 現場で最も堅牢なVBAイベントプロシージャ

企業内の共用ファイルやマクロ有効ブック(.xlsm)が許可されている環境であれば、ワークシートのイベントを活用したExcel VBA日付自動登録が最もトラブルを防げます。

シート見出しを右クリックして「コードの表示」を選択し、以下のVBAコードを貼り付けるだけで稼働します。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    For Each r In Target
        If r.Column = 1 And r.Value <> "" Then ' A列に文字が入力された場合
            If r.Offset(0, 1).Value ="" Then
                r.Offset(0, 1).Value = Date ' 隣のB列に当日の固定日付を代入
            End If
        End If
    Next r
End Sub

この記述により、A列に商品名や作業完了フラグが入力された時点で、隣のB列に関数ではなく「確定した日付データ」が自動書き込みされます。

山本 拓海
著者

山本 拓海

デジタルガジェットとスマート家電の検証記事を多数執筆。失敗しないモノ選びを提案します。