重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

A行に何かデータを入力した場合、同じ列のとなりの行のセルに入力時間を残したいと思い、


A1:あ B1:2006/5/9/16:00
A2:い B2:2006/5/10/18:00

=IF(A1<>"",NOW(),"") 
といった関数をB1に入れて、B1からB10までドラッグしました。
実際時間も表示されうまくいったと思ったのですが、A1にデータを入力後しばらくたってからA2以降にデータを入力すると、B1に表示されていた時間が更新され
B2以降の時間と同じになってしまうのです。
以前の入力時間をそのままに残しておく方法はないものでしょうか?
よろしくお願いいたします。

A 回答 (4件)

#2,3のmshr1962です。


>A列以外にもC列にもデータを入力したときD列に時間が出るといったマクロはどのようにすればよいでしょうか?

'///A列のセル以外ならマクロ終了///
If Target.Column <> 1 Then Exit Sub
         ↓

'///A,C列のセル以外ならマクロ終了///
If Target.Column <> 1 Or Target.Column <> 3 Then Exit Sub

もっと増える場合はSelect Caseを使った方がいいかもしれません。
Select Case Target.Column
Case 1,3
実行処理
End Select
で制御できます。
    • good
    • 0
この回答へのお礼

ありがとうございます!感謝です!
大変参考になりました。
また何かありましたらよろしくお願いいたします。

お礼日時:2006/05/09 17:41

#2のmshr1962です。

サンプルマクロですが...
Alt+F11で表示される画面でマクロを設定するWorkSheetをダブルクリックして貼り付けてください。
Private Sub Worksheet_Change(ByVal Target As Range)
'///A列のセル以外ならマクロ終了///
If Target.Column <> 1 Then Exit Sub
'///1行目のセルならマクロ終了///
If Target.Row = 1 Then Exit Sub
'///内容がブランクならB列のセルをブランクにする。///
If Target.Value = "" Then
Target.Offset(0, 1).Value = ""
Else
Target.Offset(0, 1).Value = Format(Date + Time, "yyyy/mm/dd hh:mm:ss")
End If
End Sub

※「ツール」「マクロ」「セキュリティ」の内容が「最高」「高」だとマクロが動かない場合があります。
「中」にすればブックを開いた時に確認画面が出るので「有効にする」を選択してください。
    • good
    • 0
この回答へのお礼

すごい!ありがとうございます。
大変お手数ですが、
A列以外にもC列にもデータを入力したときD列に時間が出るといったマクロはどのようにすればよいでしょうか?

例としては
A1:あ B1:2006/5/9 14:00  C1:う D1:2006/5/10 15:00

このような場合はこのマクロのどの部分を編集すればいいでしょうか?
まとめて質問しなくてすいません。

お礼日時:2006/05/09 17:21

現状では数式を値化するしかないですね。



入力時に「Ctrl+;」で今日の日付、「Ctrl+:」で今の時間が入力可能なので
このショートカットの間にスペースを一つ設定して手入力するか?
マクロでA列に入力があったら隣のセルに時間(Time)を入力する設定を作るかですね。
    • good
    • 0
この回答へのお礼

ご返答ありがとうございます。
マクロを勉強します。
そうでしたか、できればどのようなマクロの作ればいいのかご教授頂けると幸いなのですが、よろしくお願いします。

お礼日時:2006/05/09 16:16

メニューから、ツール-オプションで、計算方法を手動にしておけばいったん表示された日時は更新されないはずです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!