大手ITサポート窓口や社内ヘルプデスクに寄せられる相談の中でも、「日付の自動化」にまつわる失敗談は非常に根深いものがあります。知恵袋やSNSなどのコミュニティを調査すると、「共有フォルダの見積書を開いたら日付が全員当日に変わってしまい、誰がいつ承認したか分からなくなった」という深刻な叫びが散見されます。
ネット上には「循環参照を利用した裏ワザで数式だけでタイムスタンプを固定する」という手法も一部で紹介されていますが、これは推奨できません。Excelの「反復計算」を有効にする手法は、ファイル破損のリスクや別シートでの計算狂いを誘発する危険性が極めて高いためです。
入力と同時に変更不可な日時を自動記録したい場合は、正攻法としてVBA 日付 自動記録 タイムスタンプを採用すべきです。シートモジュールに以下のような簡潔なイベントプロシージャを記述することで、B列に文字が入力された瞬間にA列へ現在日時を静的書き込みできます。
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B2:B100")) Is Nothing Then Application.EnableEvents = False Target.Offset(0, -1).Value = Now Application.EnableEvents = True End If End Sub
この仕組みであれば、ユーザーがショートカットキーを押す手間すら省きながら、改ざんや誤上書きのない正確な業務ログを担保できます。