Excel日付入力の自動化テクニック3選!

Excel小技part3

Excel日付入力の自動化テクニック3選!手入力の手間とミスをゼロにする方法

日報やタスク管理表で、毎日「今日の日付」を手入力するのが面倒…と感じていませんか?入力ミスや更新忘れで、後から困った経験は誰にでもあるはずです。

実はExcelには、用途に応じて日付入力を劇的に効率化する機能が3つもあります。この記事を読めば、あなたの作業に最適な日付の自動入力方法が分かり、明日から入力ミスと手間をなくせます。

プロ

こんにちは!Excelでの日付入力、毎日だと地味に面倒ですよね。今日はその手間をなくす3つの方法を解説します。

初心者

本当ですか!いつも手で「2023/10/27」みたいに入力していて…。TODAY関数というのを聞いたことはありますが、それを使えばいいんでしょうか?

プロ

良い質問ですね。TODAY関数は便利ですが、万能ではありません。ファイルを開くたびに日付が「今日」に更新されてしまうので、作業記録など「過去の日付を固定したい」場合には向かないんです。用途によって最適な方法を選ぶのが重要ですよ。

初心者

なるほど!記録を残したい時と、常に最新にしたい時で使い分けるんですね。具体的に教えてください!

用途別!日付自動入力の3つのテクニック

3つの方法の使い分け

  • 1. ショートカットキー (`Ctrl` + `;`): 議事録や作業ログなど、日付を固定して記録したい場合に最適。
  • 2. TODAY関数: 請求書の発行日など、常に最新の日付を表示したい場合に便利。
  • 3. VBAマクロ (応用): 隣のセルに入力したら自動で日付を打刻したい、といった高度な自動化に。

テクニック1:ショートカットキーで一瞬で固定日付を入力

作業記録や日報など、入力したその日の日付を後から変えたくない場合に最も速く確実な方法です。

  1. 日付を入力したいセルを選択します。
  2. キーボードの Ctrl キーを押しながら ; (セミコロン) キーを押します。
  3. これだけで、操作した日の日付が「2023/10/27」のように入力されます。この日付は後から自動で変わることはありません。

テクニック2:TODAY関数で常に「今日」を表示

ファイルを開くたびに、その日の日付に自動更新させたい場合に使います。書類の印刷日などに最適です。

  1. 日付を表示したいセルを選択します。
  2. 数式バーに以下の関数を入力し、Enterキーを押します。
=TODAY()

これで、ファイルを開くたびにその日の日付に自動で更新されるセルが完成します。

【応用】VBAで特定セル更新時に日付を自動打刻

少し高度ですが、コピペで使えるので挑戦してみましょう。例えば、下の表のように「B列のタスク内容を入力したら、隣のA列に自動で日付を入れる」といった処理が可能です。入力漏れを完全に防げます。

更新日 (自動入力) タスク内容 (手入力) 担当者
2023/10/27 A社向け提案書 作成 佐藤
↑ここに入力すると左に日付が入る

設定手順:

  1. Alt + F11キーを押して「Visual Basic Editor (VBE)」を開きます。
  2. 左側のプロジェクトウィンドウから、自動化したいシート名(例: Sheet1)をダブルクリックします。
  3. 右側に表示された白いコードウィンドウに、以下のコードをそのまま貼り付けます。
  4. VBEウィンドウを右上の「×」で閉じ、Excelシートに戻ります。
  5. ファイルを保存する際、種類を「Excel マクロ有効ブック (*.xlsm)」に変更して保存します。
Private Sub Worksheet_Change(ByVal Target As Range)
    ' B列(2列目)が変更され、かつ変更が単一セルの場合のみ実行
    If Target.Column = 2 And Target.Count = 1 Then
        ' 変更されたセルの隣(A列)のセルを取得
        Dim dateCell As Range
        Set dateCell = Cells(Target.Row, 1)

        ' もしB列が空になったら、A列の日付も消す
        If IsEmpty(Target.Value) Then
            dateCell.ClearContents
        ' もしB列に何か入力されたら、A列に今日の日付を入力
        Else
            ' 既に入力済みの場合は更新しない
            If IsEmpty(dateCell.Value) Then
                dateCell.Value = Date
            End If
        End If
    End If
End Sub

これで、B列のセルに何か入力するたびに、A列に対応する日付が自動で記録されるようになります。

よくある失敗と解決策

日付の自動入力でつまずきがちなポイントをまとめました。

原因(失敗例) 対処法 一言メモ
TODAY関数を使ったら、過去の作業記録も全部今日の日付に変わってしまった。 記録を残す場合は、Ctrl + ; のショートカットキーで固定の日付を入力する。 TODAYは「常に最新」、ショートカットは「その時点」と覚えましょう。
ショートカットキーが効かない(英語配列キーボードなど)。 クイックアクセスツールバーに「今日の日付」コマンドを追加しておく。 マウス操作になりますが、毎回確実に実行できるので安心です。
VBAコードを貼り付けたのに、自動打刻が動かない。 ファイルを「マクロ有効ブック(.xlsm)」で保存し、再度開いた際に「コンテンツの有効化」をクリックする。 マクロはセキュリティ機能で初期設定では無効になっています。

まとめ:今日から始める日付入力の効率化

日付入力の手間をなくすためのポイントは3つです。

  • 記録にはCtrl + ;: 過去の情報を固定したい場合は、ショートカットキーで一瞬で入力。
  • 最新表示にはTODAY(): 常に今日の日付にしたい書類には、関数が便利。
  • 完全自動化にはVBA: 特定の操作と連動させたいなら、VBAで入力漏れを根絶。

まずは普段使っている日報や管理表で、日付を手入力する代わりに Ctrl + ; を一度使ってみましょう。その一瞬の快適さが、業務改善の大きな第一歩です。

コメント