AIと戦って、あなたの人生のリスク診断 >>

他の質問者の回答を参考にして、同様のマクロを使っています。

B列に入力し、A列に日付を書き込む場合
B1→A1
B2→A2
B3→A3

--------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, -1).Value = Now
Application.EnableEvents = True
End Sub
--------------------
 
上記を使って大変助かっていますが・・・。

カーソルをB1のセルに移すだけで、A1に日付が自動表示されます。次にB1に数字を入力しEnterを押すとカーソルが下のB2に移動するのですが、A2に日付が自動表示されます。B2には何も入力していません。つまりカーソルの移動だけで自動表示されてしまいます。

カーソルをB1に移しても何も入力しなければA1には何も表示されず、B1に何か数値を入力することでA1に日付が表示されるようにしたいのです。
どなたか教えて下さい。

質問者からの補足コメント

  • 早速のご回答ありがとう御座います。
    「ママチャリ」様:おっしゃる通り「開発」→「コード表」をクリックして出た表にかきました。どこに書いたら良いのですか。教えて下さい。
    「t_fumiaki」様:こちらの基本的な入力場所等に間違いがあるようです。追加したのですが・・・。
    「fujillin」様:同じシートのVBAコード欄はどこを見れば解りますか。もう一つはどこでしょうか。初心なので基本的な事が解らずすみません。

      補足日時:2017/09/26 17:25

A 回答 (4件)

>>「t_fumiaki」様:こちらの基本的な入力場所等に間違いがあるようです。

追加したのですが・・・。

B列に入れたらA列に日付・時間表示では無いのですか??
提示はそういうコードですが・・・・。
そのSPECで正しく動くコードを回答しました。
    • good
    • 1

こんにちは



ご提示のコードだけでは、ご質問のようなことにはならないはずと思います。

ひょっとして、同じシートのVBAコード欄に
 Worksheet_SelectionChange
として同じような内容の処理が設定されていたりしませんか?

その場合は、ご質問のような事象が発生するものと思います。
    • good
    • 1

Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Column <> 2 Then Exit Sub

If Target.Value <> "" Then←←←←追加

Application.EnableEvents = False
Target.Offset(, -1).Value = Now
Application.EnableEvents = True

End If←←←←←←←←←←←←追加

End Sub
    • good
    • 1

まさかとは思いますが、Worksheet_SelectionChangeイベントプロシジャに、コードを書いていませんか?

    • good
    • 1

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


人気Q&Aランキング