ここから本文です

初めまして。以前こちらで下記の質問があり私も同じ質問だったので参考にさせて頂...

bvn********さん

2019/3/1210:36:29

初めまして。以前こちらで下記の質問があり私も同じ質問だったので参考にさせて頂きました。

エクセルの時間について質問します。A1に1を入力した時B1に現在の時刻を管理できるような数式がありましたらご教授ねがいます。Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, 1).Value = Now
Application.EnableEvents = True
End Sub

ですが管理をするうえでA1に何かを打ち込むとB1に時刻、追加でD1に打ち込むとE1に時刻がでるようにしたいのですが、どのような数式をしていいのか分かりません。どなたかお教え頂けないでしょうか?

閲覧数:
47
回答数:
4

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tai********さん

2019/3/1213:43:11

A1に何かを打ち込むとB1に時刻、追加でD1に打ち込むとE1に時刻が

ではなく

A列に何かを打ち込むと同じ行のB列に時刻、追加でD列に打ち込むとE列の同じ行に時刻が~

ではないですか?、少なくとも上のコードはそうなっています。
ただ上のコードではTargetを一つのセルに決め打ちしているので例えばA1:B1を削除するとB1:C1に時刻が入る、という欠陥があります。一つのセルだけに入力していれば大丈夫ですが、


Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range
If Intersect(Target, Range("A:A,D:D")) Is Nothing Then Exit Sub
For Each r In Target
If r.Value = "" Then Exit Sub
If r.Column = 1 Or r.Column = 4 Then
r.Offset(, 1).Value = Now
End If
Next
End Sub

  • 質問者

    bvn********さん

    2019/3/1214:29:26

    ありがとうございます‼︎
    そうです!
    説明足らずで申し訳ありません(TT)
    If Intersect(Target, Range("A:A,D:D")) Is Nothing Then Exit Subこの数式を打つとコンパイルエラーがでます( ; ; )

  • その他の返信(3件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2019/3/12 15:21:51

ありがとうございました^_^
他の方も色々教えて下さってありがとうございました^_^

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

hel********さん

2019/3/1213:58:50

一例で・・。A列、D列のデータを削除したら、その右隣りの時刻もなくなります。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A,D:D")) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then
Target.Offset(, 1).Value = ""
Exit Sub
End If
Target.Offset(, 1).Value = Time()
End Sub

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

nan********さん

2019/3/1211:28:50

If Target.Column <> 1 Then Exit Sub
で1列目以外の変更の場合、以下の処理を行わない(Exit Sub)なので
削除すれば、入力があったセルの1列ずれたところに時刻を入力するようになります。
が、A1入力→B1時刻の後にB1に入力すればC1に時刻のようになります。
何か他の動作をする場合はマクロを無効化するか、記述を削除orコメント化で処理しないようにする手間がでます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

yog********さん

2019/3/1210:44:33

数式で入力は、しません。
関数で解決します。

TIME関数が、あって
日付を入れる関数と
時間を入れる関数とが
あるので、セルで使い分けられます。

エクセル TIME関数で検索して
やり方を、覚えて下さい。

自動で日付や時間を表示するのは
ファイルを開いた時刻になります。
リアルタイムに変化はしません。
現在の日付と時刻に更新したければ
F9キーを押す毎に変わって行きます。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる