• 締切済み

format関数について

VBで時刻をミリ秒まで表示したいのですが FORMATでSSより小さな単位ありますか? もしくはFORMAT関数を使用しないで表示できますか?

みんなの回答

  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

正確なミリ秒を取得する方法は、あるのかもしれませんが一般的にはよく知られていませんし、私も知りません。 しかし、1秒よりも小さい数字を取得する方法が無いわけでもありません。 以前に私が取った方法は、以下のような方法です。 Timer関数を使って、午前0時からの経過秒数を取得します。これは、実際には単精度浮動小数点数型で帰ってくるので、小数点以下の数値があります。 この数値を取り出して、1秒以下を表すのは可能です。 ただし、あくまで前後を把握するための参考程度でしょう。 この数値から、「時:分:秒.それ以下」という文字列をつくれば、それっぽい表示が可能です。 ちなみに、判るとは思いますが、それぞれの算出方法は次の通りです。 total_Sec = Timer '午前0時からの経過秒数(単精度浮動小数点数型) '時の取得 h = CStr(Int(total_Sec / 3600)) '分 m = CStr(Int((total_Sec - 3600 * h) \ 60)) '秒 s = CStr(Int(total_Sec - 3600 * h - 60 * m)) '1秒以下 under_s = CStr(total_Sec - 3600 * h - 60 * m - s) 私は、これにそれぞれの桁をそろえる自作関数を合わせて使っていました。

hisako27
質問者

お礼

time()しかおもいつかなかったもので・・・ timerだとできますね。 ありがとうございました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2
hisako27
質問者

お礼

お返事が遅くなりました。 やっぱりAPIを使用しないとできないですね。 ありがとうございました。

  • masaboo
  • ベストアンサー率58% (7/12)
回答No.1

Public Declare Function GetTickCount Lib "KERNEL32" ()As Long 標準モジュールでこれを宣言してください。 ms = GetTickCount などとすることで、Windowsが起動してからの時間(ミリ秒)が取得できますので、あとは割り算などで好きなフォーマットにすればよいと思います。

hisako27
質問者

補足

さっそくのお返事ありがとうございます。 Windowsが起動してからの時間ってTime関数と同じ時間をさしますか? (ミリ秒だけではなくhh:mm:ss:○○といったふうに取得したいのですが・・・)

関連するQ&A

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

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

  • time()関数

    Unix系でtime()関数を使うと現在時刻が1秒単位で取得出来ますが、ミリ秒単位で取得する方法ってありませんか?

  • VB関数(FORMAT関数)

    素人でよく分からないのですが,VBを使用してプログラムを作成しようとしていますが,以前VB関数のFORMATを使用して四捨五入処理すると,正しく四捨五入されないと聞きましたが,これは本当ですか? また,最新バ-ジョンのVBではこの様なことは起こらないのですか?

  • EXCELでミリ秒を計算する方法

    ミリ秒単位まで入力された時刻表記のセルがあります。 このセルの値をミリ秒に換算する方法を教えてください。 【セル書式】hh:mm:ss.000 ※hhは00固定 【例】 値は、「00:01:02.123」 これを、1*60000+2*1000+123=62123(ミリ秒) というように算出したいのです。 計算式は、「mm*60000+ss*10000+000(ミリ秒部分)」です。 VBAはやったことがないので、出来れば、関数等で出来る 方法をお願いします。

  • タイマー関数について

    こんばんは。 この掲示板には大変お世話になっています。ありがとうございます。 [質問内容] およそ1ミリ秒単位で、待機することができる関数はあるのでしょうか? 私は、C言語を使用しているのですが、タイマー関数としてはSleep関数しか知りません。しかし、最近になってSleep関数は10ミリ秒待機することが限界ということをこの掲示板で知りました。 Windowsプログラミングに用意してある関数で1ミリ秒待機できる関数はありますでしょうか? 私は今、対処方法としてダミー処理をほどこすことでだいたい1ミリ秒のタイマーを作っています。 C言語もまだまだ初心者ですがよろしくお願いします。

  • VB6.0 のformat関数について

    VB6.0(SP5)のformat関数にて、以下のような場合、異なる結果が帰ってきます。 どのような仕様で結果が異なるのでしょうか?  Format("20050101-1", "0") → "20050101-1" と帰ってきます。  Format("20060101-1", "0") → "1528543" と帰ってきます。 分かる方がいらっしゃたら、お願いします。

  • VBのFORMAT関数

    VBのFORMAT関数についての質問です。 Format(変数,"!") "!"<--これの書式って どのような意味(書式)なんでしょうか? ランゲージレファレンスにも載っていませんでした。 よろしくお願いします

  • Format 関数のバグ?

    今、OS:WindowsXP Pro SP2 VB:6.0 SP6 の環境でアプリケーションを作成しています。 上記の環境で、Format関数に関して質問があります。 今、2桁の文字列のコードをゼロ埋め(0 埋め)にして表示させたいと考えております。そこで、以下の関数を利用いたしました。 Format("19", "00") Format("1A", "00") Format("1B", "00") を呼び出し、"19","1A","1B"と返答結果を期待しているのですが、 実際に実行すると、"19","00","1B"と返答されてしまいます。 なぜ、"1A"だけ、"00"と返答されるのでしょうか。 仕様でしょうか?

  • Format関数の戻り値

    Format関数で戻り値がおもうようにとれません。 どうしてかわからず困っています。 以下の2パターンの違いがわかりません "0A"はなぜ"00"になってしまうのですか? (VBバージョンは6.0です) format("0D","00") 結果 "0D" format("0A","00") 結果 "00"

  • エクセル 時刻表示と使う関数、セル表形式の関係を教えて下さい。

     お世話になります。  最近、仕事で各メンバーの1日の仕事の内容、それに要する時間をまとめる必要があり、苦手な時刻関数を使用しなければならなくなりました。  恥ずかしいことですが、時刻関数はどうも、分かりにくいので、逃げていましたが、そうも言っていられなくなり、質問させていただきました。  時刻関数の場合、セル表示形式が関わって来るのは知っていますが、今一、理解できていません。(シリアル値換算、セル表示形式)  簡単なことですが、下記の場合    A1セルに 1分30秒と入力した場合、  これを1.5分や90秒や00:1:30などに表示形式を変化させるにはどうすればよいでしょうか?  ○日や○時間単位なら少しは分かるのですが、分や秒など細かい単位になると上手く行きません。  1回の動作が1分30秒掛かる仕事があり、これを50回繰り返すとした場合、以下の単位に表示を任意に変更する方法が分かりません。    90秒×50回=〔4500秒〕 または90秒×50回=〔75分〕 または90秒×50回=〔1時間15分〕に変えるには?  多分、TEXT関数、TIME関数にシリアル換算が関係している気はしていますが、どなたか教えていただけないでしょうか?