マンガでよめる痔のこと・薬のこと

時間を取得するコードを使っていますが

Declare Function timeGetTime Lib "winmm.dll" () As Long

Sub Sample()
Dim nStart As Long
Dim nEnd As Long

nStart = timeGetTime()


nEnd = timeGetTime

Debug.Print (CDbl(nEnd) - CDbl(nStart)) / 100 & "秒"
End Sub


これだと結果が、
11607271.9221569秒
秒になってしまいました。

●分●秒で取得したいのですが、
どのような書式にすればよいですか?

A 回答 (4件)

timeGetTime関数を使用するのなら戻り値はミリ秒(1/1000)ですから1000で割らないと秒になりません。


また、秒以下を切り捨てていいのならダブル型へのキャストも不要です。

Sub Sample()
  Dim nStart As Long
  Dim nEnd As Long
  Dim nTime As Long

  nStart = timeGetTime()
   ・・・
   ・・・
   ・・・
  nEnd = timeGetTime
  nTime=(nEnd - nStart)/1000

  Debug.Print nTime \ 60 & "分" & nTime Mod 60 & "秒"
End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/30 23:41

Sub Sample()



Dim nStart As Variant
Dim nEnd As Variant

nStart = Time() ’24時をまたぐならNow()

nEnd = Time() ’24時をまたぐならNow()
Debug.Print format(nEnd) - nStart, ”[m]分ss秒”)

End Sub
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/30 23:41

そもそも、求める精度は?



> ●分●秒で取得したいのですが、
だったら
Debug.Print format(time, ”[m]分SS秒”)
で良くない?
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/30 23:41

逆に質問です。


1分は何秒ですか?

それが解っているならその比率に合わせてミリ秒を表す値を分を表す値と秒を表す値とに分けましょう。
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/12/30 23:41

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


人気Q&Aランキング