- ベストアンサー
エクセルの時刻入力(now)関数を自動更新について
- エクセルにおける時刻入力の方法について、自動更新をせずに値としてセルに残す方法を教えてください。
- エクセルのNOW関数を使用してセルに現在時刻を入力し、ファイルを次回開いたときにも更新されないようにする方法を教えてください。
- エクセル2003で、D列に品物名を入力したときにA列の開始時刻、B列の終了時刻、C列の所要時間を自動入力し、次にファイルを開いたときにも変わらないようにする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
シートタブ(Sheet1) の右クリック--コードの表示--開いたVBEditor に、 以下を貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) '除外条件 If Intersect(Target, Range("D2", Cells(Rows.Count, 4))) Is Nothing Then Exit Sub 'D以外 If Target.Count > 1 Then Exit Sub '複数セル If Target.Value = "" Then Exit Sub '何も入れない場合 '実行 Application.EnableEvents = False Target.Offset(, -3).Value = Now() Target.Offset(, -2).Value = Now() + TimeSerial(0, 1, 0) Target.Offset(, -1).FormulaLocal = "=RC[-1]-RC[-2]" Target.Offset(, -1).NumberFormatLocal = "m:ss" Application.EnableEvents = True End Sub
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
NOW関数は現在時刻表示です。再計算になるたびに現在時刻を表示します。 現在時刻を手動でセットでいいなら Ctrlキーを押しながら":"のキーを押す。 ※左隣の";"のキーだと現在日付を入力できます。 なお自動にする場合は、VBAの利用になります。
お礼
早速の回答有難う御座います。 やはり、厳しいでしょうか?VBAだと出来そうな感じがしますが、(といっても、初心者ですが・・。) ちなみ、列を一行挿入してそちらへTEXT関数として出し、一回だけしか入力出来ないようにする などの方法も考えましたが、、、、、厳しいですね。 早速、ご回答頂き、有難うございました。
- bin-chan
- ベストアンサー率33% (1403/4213)
所要時刻は常にセルA2+1分なのですか? ならば以下の方法でどうでしょう。 1)セルB2は式[=if(A2="","",A2+"00:01")]を設定 2)セルC2は式[=if(B2<>"",B2-A2,"")]を設定 3)セルA2で、Ctrl+: (コロン、ケのキー)を押下(その時刻が入力されます)
お礼
早速、返信頂き有難うございます。 質問がまずくて申し訳御座いません。 A2セルは、仰るように、Ctrl+;で入力したら、間違いなのでしょうが、D2セルへ入力した段階で 全て、表示させるようにしたいのですけど、、。VBAとか、マクロを使用しなければだめですかね・・? 早速ご回答頂きありがとうございました
- 未 定(@v4330)
- ベストアンサー率20% (417/2003)
関数では無理です。 日付のセルにカーソルを合わした後で Ctrl+; (セミコロンです) を押せばその時の日付が入力されます。 ついでに Ctrl+: (コロン) ならば、その時の時刻になります
お礼
早速、ご回答下さり有難うございます。 やはり、関数では無理でしょうか・・・。できれば、D2セルを入力した段階で自動で入力させたいのですが。 いくら検索しても、ヒットしないので、、、ご質問させて頂きました。 早速の回答有難う御座いました。
お礼
返信が遅れてもうしわけありません。 VBAのコード?を記載頂き有難うございました。 エクセルへ貼り付けたら、うまく作動しました。 助かりました~。 これから、中身について勉強していきます。。 ありがとうございました!