• ベストアンサー

VisualBasic6.0のFormat関数でmSecを表示したい

VisualBasic6.0のFormat関数で時刻をあらわす方法でFormat(CStr(Now),"h:mm:ss")としていますが、mSecをあらわすときはどうしたらいいのでしょうか。どなたか教えてください。 VB.NETのffを使ってみましたがだめでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

Now関数では ミリセカンドの精度は持っていないようです dim d as Double d = now ' 日付部分を削除 d = d - Fix(d) ' 秒単位に変換 d = d * 24. * 60 *60 ' 秒部分を削除 d = d - Fix(d) といった具合にすれば 秒未満の数値が取り出せそうですがここまでの分解能が無いため浮動小数点の誤差程度の値しか求まりません ミリ秒を取得するのであれば WinAPIのGetSystemTimeなどを使ったほうがいいでしょう Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) Private Type SYSTEMTIME wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type といった具合で宣言して dim st as STSEMTIME GetSystemTime st debug.print st.wMilliseconds といった具合で取り出せますよ

KamiHotoke
質問者

お礼

ありがとうございます。早速試してみます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

http://homepage1.nifty.com/MADIA/vb/API/GetSystemTime.htm にも類似課題を扱っているサイトがあり増した。 ミスタイプもあり修正し Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME) Public Type SYSTEMTIME wYear As Integer '西暦 wMonth As Integer '月 wDayOfWeek As Integer wDay As Integer '日 wHour As Integer '時間 wMinute As Integer '分 wSecond As Integer '秒 wMilliseconds As Integer End Type Sub test01() Dim st As SYSTEMTIME GetSystemTime st MsgBox st.wMilliseconds End Sub で動くことを確認しました。 参考までに。良くわかっている人にはなんでもないミスが、 学んでいる人には、途方にくれる場合があると思って。

KamiHotoke
質問者

お礼

ありがとうございます。 使ってみます。

  • Pebble
  • ベストアンサー率0% (0/1)
回答No.1

日付はNowから取得し時刻はその日の0時からの通算時間を表す Timerを計算編集して使うという方法があります。 ただしNowが表す時刻とTimerが表す時刻が一致するかは 分かりません。聞いた話では一致しないときもあるとか。 ご参考までに。

KamiHotoke
質問者

お礼

ありがとうございます。 今回はAPIの使用がわかりやすいのでその方法で以降と思います。 また教えてください。

関連するQ&A