自分の通っていた小学校のあるある

教えてください。
エクセルで、たとえばA1のセルに自分の名前を入力したときB1にそのときの時刻が入力される。5分後、A2に自分の名前を入力したときB2にその時の時刻が自動で入力される。ただしこの時A1の時刻はA2に自分の名前を入力したときのままで固定されている。この操作を100回くらい繰り返しても時刻は入力したときのまま。
上記内容はエクセルでどうやればできるのでしょうか?

A 回答 (6件)

#5です。

気がつくのが遅れてすみませんでした。

3行目の If (c.Column = 1) Then が変わったセルの列(Column)が1だったら(=A列だったら)という判定をしています。
あとの処理はA列の場合もD列の場合も同じなので、この条件を増やしてあげればOKですね。

3行目を  If (c.Column = 1) Or (c.Column = 3) Then に変えればC列でも同様になります。
    • good
    • 1

使用方法がわからない場合は、Ctrl+:をお勧めします。



A列に入力があったときに右側(B列)に時刻表示をします。

Private Sub Worksheet_Change(ByVal Target As Range)
 For Each c In Target
  If (c.Column = 1) Then
   If (c.Value = "") Then
    c.Offset(0, 1).Value = ""
   Else
    c.Offset(0, 1).FormulaR1C1 = Time
    c.Offset(0, 1).NumberFormat = "h:mm"
   End If
  End If
 Next
End Sub

この回答への補足

質問者です。
ありがとうございます。できました。
お手数ですがもうひとつ教えていただきたいのですが、上記の条件を守りつつさらに、C列に入力があったときにも右側(D列)に時刻表示ができるようなやり方はどうすればよいのでしょうか?(条件の追加)

補足日時:2008/08/27 09:36
    • good
    • 3

No.2です。


補足しておきます。

>これは希望の様な働きはせず、都度再計算されてしまう為に
固定は出来ません。

この部分は、例えばその場では上手く関数で時刻を拾えても
一度保存して開き直せば、その時の時間ですべて再計算されます。
    • good
    • 0

VBAつまりマクロを使えば可能です。


それ以外の場合は、手動で Ctrlキーを押しながら : で現在時刻をスタンプですね。
    • good
    • 0

シート関数には時刻を表示する関数がありますが


これは希望の様な働きはせず、都度再計算されてしまう為に
固定は出来ません。

記録の様に時刻を取得して残すなら、VBAしか方法はありませんが
質問の内容から推測すると、それほどプログラムに通じている
様には思えませんが・・・

まずは上書きマクロで、「Ctrl」を押しながら「:」を押して
値としての時刻を取得する事をお勧めします。
    • good
    • 0

=IF(A1="","",NOW())


B1の表示形式は時刻

あまりひねりはないですが、こんなんじゃダメですか?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報