質問: エクセルで入力時間を更新させずに表示させたい エクセル初心者です。シート内で複数の入力時間を、更新させずに表示させたいのですが、どのようにすればよいのでしょうか? a1にある数値を入力したらb1にその入力時間を表示させ、一定時間後にa2に別の数値を入力すると、b2にその入力時間を表示させたいです。 b1、b2の入力時間とは、あくまでもそれぞれの入力した時の時間を表示させたく、また、表示後は時間の更新はさせたくないです。 ”=now()”だと、入力のたびに過去の表示時間まで同時に更新されてしまい、また、複数の表示時間が全て同じ時間となってしまいます。 簡単な関数などでできれば助かりますが、マクロやvbaでないとできないというのであればやってみたいと思いますので、できる方法で教えてください。 よろしくお願いします。
回答: 関数では、無理です。 ひとつ手間ですが、b1セルで、ctrl+*で時間を入れます。 vbaでは、「ツール」「マクロ」「vb editor]でエディター開く 「表示」「プロジェクトエクスプローラー」表示 時刻を入れるシートをクリック そのシートのコードに private sub worksheet_change(byval target as range) if target.column = 1 then target.offset(0, 1).value = time end if end sub のコード、コピィしてみてください。 private sub worksheet_change(byval target as range)は その、シートに変更があった場合に実行される。 target.column = 1は、変更されたのが、1列目(a列だったら) offset(0, 1)は、1列左に時間を入れるという意味です。 vbaは別途、勉強してみてください。