[[20061017203911]] 『セルに入力した日時を表示させる方法を探していま』(てつや) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルに入力した日時を表示させる方法を探しています。』(てつや)

セルに記入した日時を表示させる演算式を探しています。

例えば、Sheet1,A1に「テスト」と記入したとき、Sheet2,B1にSheet1,A1に記入した年月日時間が表示されるようにすることは出来ますでしょうか?
また、Sheet1,A1の内容を更新したときにはSheet2,B1の年月日も更新される様にしたいです。

どなたか宜しくお願い致します。


 単純に考えてこんな事?
 B1=IF(Sheet1!A1<>"",NOW(),"")
 そしてB1の書式を時刻にしておく。
    やっぱり、外してますよね。
   (SS)

 ↑上記書き込みは撤回します。
 早とちりしてました。ファイルを保存して再び開いた時にも
 変わってしまいますよね。全くもってお恥ずかしい......。
 マクロでないと無理かも?
   (SS)


 VBA です。

 Sheet1 のタブ(表の下の Sheet1 とあるところ)を右クリックし、
 「コードの表示」で出てくるところに

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    If Range("A1").Value = "テスト" Then Worksheets("Sheet2").Range("B1").Value = Date & " " & Time
 End Sub

 を貼り付け。

 ※「Sheet1,A1の内容を更新したときには」ということは、A1 が「テスト」でなくても
    作動すべきなのでしょうか。それなら

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$1" Then Exit Sub
    Worksheets("Sheet2").Range("B1").Value = Date & " " & Time
 End Sub


(てつやです)
分かり易い回答をありがとうございました。
教えていただいたとおりの実行で、表示させることが出来ました。

追っての質問で申し訳ありませんが、
・現在Sheet1,A1に対してSheet2,B1が対応していますが、
 Sheet1,A2に対してSheet2,B2
 Sheet1,A3に対してSheet2,B3
 と範囲を増やす場合には、
 「Worksheets("Sheet2").Range("B1").Value = Date & " " & Time」
 の部分を増やすしかないのでしょうか。

宜しくお願い致します。


 ご質問のような関係なら、名無しさんのコードを変更したらどうですか。 (茨)
 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
    If Target.Row > 3 Then Exit Sub
    Worksheets("Sheet2").Range("B" & Target.Row).Value = Date & " " & Time
 End Sub


 こんなのはどうでしょうか。(ROUGE)
'----
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range
    For Each c In Target
        If Not Intersect(c, Range("A1:A3")) Is Nothing Then _
            Sheets("Sheet2").Cells(c.Row, 2).Value = _
            Format(Now, "yyyy/mm/dd hh:mm:ss")
    Next
End Sub

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.