こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルの時刻入力(now)関数を自動更新について

ご質問させてください。

うまく表現できるかわかりませんが、エクセルにお詳しい方、ご教授くださいませ。

NOW関数をセルに入力して、ファイルを次回開くとその時刻となってしまいますが、

自動更新させずに、値としてセルに残す方法はご存じありませんか?

ご存じの方いらっしゃいましたら、ご教授くださいませ。

        A    B    C    D
1     開始時刻         終了時刻       所要時間       入力品名
        ⇓             ⇓               ⇓
2 『=IF(D2="","",NOW())』  『=IF(A2="","",A2+1/1440)』 『=B2-A2』   


・・・・・・以後続く。
という感じで、D2に品物名を入れたら、A列に開始時刻 B列に終了時刻『1分』 C列に所要時間を自動入力し、その開始時刻(A列)を以後反映させないように(次にファイルを開いても数値が変わらない。)ようにするには、どのようにしたらよいでしょうか?

エクセルは初心者の域をでませんので、悩んでおります。ぜひ、ご教授くださいませ。

よろしくお願いいたします。

※ちなみに、エクセル2003です。

                                   

投稿日時 - 2010-11-14 21:18:43

QNo.6319598

すぐに回答ほしいです

質問者が選んだベストアンサー

シートタブ(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

投稿日時 - 2010-11-14 23:03:22

お礼

返信が遅れてもうしわけありません。

VBAのコード?を記載頂き有難うございました。

エクセルへ貼り付けたら、うまく作動しました。

助かりました~。

これから、中身について勉強していきます。。

ありがとうございました!

投稿日時 - 2010-11-16 07:22:51

ANo.4

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

NOW関数は現在時刻表示です。再計算になるたびに現在時刻を表示します。
現在時刻を手動でセットでいいなら Ctrlキーを押しながら":"のキーを押す。

※左隣の";"のキーだと現在日付を入力できます。

なお自動にする場合は、VBAの利用になります。

投稿日時 - 2010-11-14 21:28:10

お礼

早速の回答有難う御座います。

やはり、厳しいでしょうか?VBAだと出来そうな感じがしますが、(といっても、初心者ですが・・。)

ちなみ、列を一行挿入してそちらへTEXT関数として出し、一回だけしか入力出来ないようにする

などの方法も考えましたが、、、、、厳しいですね。

早速、ご回答頂き、有難うございました。

投稿日時 - 2010-11-14 21:40:24

ANo.2

所要時刻は常にセルA2+1分なのですか?
ならば以下の方法でどうでしょう。

1)セルB2は式[=if(A2="","",A2+"00:01")]を設定
2)セルC2は式[=if(B2<>"",B2-A2,"")]を設定
3)セルA2で、Ctrl+: (コロン、ケのキー)を押下(その時刻が入力されます)

投稿日時 - 2010-11-14 21:25:03

お礼

早速、返信頂き有難うございます。

質問がまずくて申し訳御座いません。

A2セルは、仰るように、Ctrl+;で入力したら、間違いなのでしょうが、D2セルへ入力した段階で

全て、表示させるようにしたいのですけど、、。VBAとか、マクロを使用しなければだめですかね・・?

早速ご回答頂きありがとうございました

投稿日時 - 2010-11-14 21:33:17

ANo.1

 
関数では無理です。
日付のセルにカーソルを合わした後で
Ctrl+; (セミコロンです)
を押せばその時の日付が入力されます。

ついでに
Ctrl+: (コロン)
ならば、その時の時刻になります
 

投稿日時 - 2010-11-14 21:23:39

お礼

早速、ご回答下さり有難うございます。

やはり、関数では無理でしょうか・・・。できれば、D2セルを入力した段階で自動で入力させたいのですが。


いくら検索しても、ヒットしないので、、、ご質問させて頂きました。

早速の回答有難う御座いました。

投稿日時 - 2010-11-14 21:36:18

あなたにオススメの質問