プロが教える店舗&オフィスのセキュリティ対策術

エクセルシートのセルに現在時刻をリアルタイムで表示することができるのでしょうか?
NOW()だとシートを開いた時刻が表示されるだけなので
・・・・何か方法はあるのでしょうか?教えてください!

A 回答 (4件)

1秒間隔でシート上の式を再計算させるマクロです。

シートのどこかに =NOW() があれば時刻が更新されます。
シートを開いた時から自動で動きます。1秒間隔をもっと長くしたいならMacro1の「秒数はここで変える」の行を修正してください。

実行するには以下の3つのマクロをVBE画面の標準モジュールにペーストしてください。

Sub Auto_Open()
Dim TargetTime, WaitTime
TargetTime = Now + TimeValue("00:00:01")
  WaitTime = TimeValue("00:00:10")
Application.OnTime TargetTime, "Macro1", WaitTime
End Sub

Sub Macro1()
Dim TargetTime, WaitTime
Calculate
TargetTime = Now + TimeValue("00:00:01") '秒数はここで変える
WaitTime = TimeValue("00:00:10")
Application.OnTime TargetTime, "Macro1", WaitTime
End Sub


Sub auto_close()
Dim i As Integer, TargetTime
On Error Resume Next
For i = 1 To 10
TargetTime = Now + TimeValue("00:00:" & Application.Text(i, "00"))
Application.OnTime TargetTime, "Macro1", , False
Next i
End Sub

この回答への補足

出来ました、出来ました!ありがとうございました。
出来たのですが、マウスポインターとかが、フリッカーするようになりました。フリッカーしないように出来ないでしょうか?教えてください。

補足日時:2006/06/23 22:06
    • good
    • 5

#02です。

再計算をさせるため、マウス形状が一瞬変わるのは、とりあえずやむを得ないかもしれませんが、以下の対策で多少改善できると思います。

1)再計算の間隔を長くする(5秒など)
2)Macro1を以下に差し替える
 これは少しでも実行時間を短くするよう切りつめました。また再計算する範囲を限定しました。
 Worksheets("シート名").Range("F5").
のところに、シート名と=NOW()が指定しているセルを指定してみてください。(以下の例ではF5セル)

Sub Macro1()
Worksheets("シート名").Range("F5").Calculate
Application.OnTime Now + TimeValue("00:00:05"), "Macro1", TimeValue("00:00:10")
End Sub
    • good
    • 2
この回答へのお礼

とても参考になりました。ありがとうございました。

お礼日時:2006/06/24 22:42

http://www.sigoto.co.jp/excel/

やはり、できるようですね (^^;

「VBA(マクロ)」プログラム。
は、使ったことあるのでしょうか?

多少、最初は、むずかしいと思いますが
なれれば、簡単です。

参考までに、「VBA(マクロ)」プログラム。
について、説明しているサイトがありましたので、
読んでみてください。

何度か読んでみないと、理解しにくいでしょうが、
かんばってください (^^
    • good
    • 0
この回答へのお礼

ありがとうございました!!

お礼日時:2006/06/23 22:06

できないと思います。



ただし、
理屈としては、NOW()を、連続的に、1秒ごとに、表示させれば、いいと思うので、

その「プログラム」を書くと、できるような気がします。

◆エクセルには、「VBAプログラム」の機能があります。
興味がありましたら、勉強してみるのもいいかと・・・
    • good
    • 0
この回答へのお礼

そうですか、無理ですか・・・勉強してみますね!ありがとうございました。

お礼日時:2006/06/23 20:12

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