• ベストアンサー

Excel コンマ以下の秒を表示したい

いつもお世話になっております。 エクセルでタイマーを作っているのですが、セルの書式設定の時刻だと何秒までしか表示できません。その次のコンマ以下(例 3.56秒)を表示させたいのですが どうすればいいか教えて下さい。 よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 >VBAでのGetTickCount関数等の使い方を具体的にご教授願えませんか? 実際は、以下のようにしても、動きが速くて何も見えません。今まで、同じような質問を受けましたが、せいぜい、1秒~2秒ぐらいの表示です。それに、セルに表示するときのロスが多少ありますので、100分の1のタイム自体をExcelで計るのは無理だと思います。 だから、  If TimeDiff Mod 1000 = 0 Then  ~ End If   などを使って表示を遅らせたりします。以下は、標準数値です。時間表示ではありません。 Private Declare Function GetTickCount Lib "kernel32" () As Long Sub TimeCountCheck() Dim StarTime As Long Dim TimeDiff As Long Dim TimeLimit As Long TimeLimit = 10 '10秒 間 TimeLimit = TimeLimit * 1000  StartTime = GetTickCount  Do   DoEvents   TimeDiff = GetTickCount - StartTime   Cells(1, 1).Value = TimeDiff / 1000  Loop While TimeDiff < TimeLimit End Sub

hasmiya
質問者

お礼

丁寧な回答ありがとうございました。いろいろ試してみます

その他の回答 (4)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

こんばんは。 > VBAで下記のようにしていたのですが、ミリ秒まで取得していなかったと > 言うことですね。 NOW も Timer もミリ秒まで取得できます。実験用サンプルコードです。 ご参考までに。 ' API タイマー関数 Declare Function timeGetTime Lib "winmm.dll" () As Long ' // 現在時刻を10ミリ秒単位で A1 セルに表示 Sub TimerSample1()   ' ※終了するには、[ESC]キーか、[Ctrl]+[Pause] です   ' 補足:timeGetTime 関数は一番条件の良い環境でも最短15ミリ秒   '   :程度のインターバルなので、信頼できるのは100ミリ秒単位です。      Const INTERVAL = 10        With Cells(1, 1)     .NumberFormat = "h:mm:ss.00"     .Formula = "=NOW()"     ' 無限ループ(表示の更新間隔は INTERVAL ミリ秒)     Do       .Calculate       Call Wait(INTERVAL)     Loop   End With End Sub ' // ウェイト処理 Private Sub Wait(ByVal Milisecond As Long)   Dim t As Long   t = timeGetTime() + Milisecond   While t > timeGetTime()     DoEvents   Wend End Sub ちなみに、このマクロを実行するとセル編集中でもマクロが実行できるのが わかります。 以下は、参考情報です。 ・Timer 関数  Excel(VBA) 標準のタイマー関数で、0 時からの経過時間をミリ秒で返す。  戻り値は Single 型。  ヘルプには「午前 0 時 (真夜中) から経過した秒数を表す...」と記載  されてますが、実際にはミリ秒です。 ・GetTickCount、timeGetTime  API のタイマー関数で、Windows 起動時からの経過時間をミリ秒で返す。  戻り値は Long 型。 使ってみると分かりますが、VBA のTimer 関数は非常に使い難いです。 なぜなら...  ・0 時で自動リセットΣ(゜д゜lll)え?.... それで、VBA でも時間計測処理などは API のタイマー関数が良く使われます。 なお、VBA の Timer 関数を含め、これらのタイマーはいずれも最短1ミリ秒の インターバルとされてますが、実際には15ミリ秒程度の精度です。

hasmiya
質問者

お礼

丁寧なご教授ありがとうございました。まだまだ勉強不足です。いろいろ試してみます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

任意のセルに =NOW() と入力して、書式を「h:mm:ss.00」にしてF9(再計算)を押下すると  10:29:35.84 のように表示されるはずです。(秒未満は1/100秒刻みです) タイマーをどのように作られたか分かりませんが、VBAの Timeでは秒単位までしか取得できません。ミリ秒単位で時間を取得するにはWindow APIのGetTickCount関数やtimeGetTime関数を使用します サンプルは検索すれば色々と出てきます

hasmiya
質問者

補足

早速の回答ありがとうございます。 VBAで下記のようにしていたのですが、ミリ秒まで取得していなかったと言うことですね。 Sub スタート時刻の設定() Range("b2").Activate ActiveCell.Value = Now() End Sub VBAでのGetTickCount関数等の使い方を具体的にご教授願えませんか? よろしくお願いします。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

セルの書式設定をユーザー定義で [s].00"秒" としてください。

hasmiya
質問者

補足

早速の回答ありがとうございます。秒のところは表示しますが、コンマ以下が「00」のままです。

回答No.1

セルの書式設定で「ユーザー定義」で「0.00"秒"」では駄目ですか?

関連するQ&A

  • Excelで 分:秒 と表示させる書式設定は?

    Excelで 各セルに 58分:10秒 なら 58:10と入力し、表示を 58:10 と表示させるにはどのような書式設定をすれば良いのですか? (すべて60分以下なので時間の桁は入れたたくない) また、これらのセルのSUMを計算するのはどうすればよいですか?(各セルはすべて60分以下ですがSUMをとると当然、60分以上になるので、2:20:40 のように合計のセルのみ 頭は時間単位としたい) 参考: セルの書式設定を「時刻 13:30」または「ユーザー定義 h.mm」 に設定した場合、下記のようになり、目的は達成されません。 これらは、時間:分 の書式のようです。セルの中は秒も表示していますが、ディスプレイには表示されません。どうしたら表示できますか。 入力   ディスプレイの表示   セルの中の表示 23:59     23:59       23:59:00 24:00     0:00      1900 1/1 0:00:00 23:59:10    23:59       23:59:10

  • 秒以下の時間の表示

    エクセルで娘の水泳のタイムを記録しているのですが3:35.58(3分35秒58)と表示したいのですが「03:35.35」と入力すると「3:35.4」と1秒以下の時間が四捨五入されてしまいます。1秒未満の時間をきちんと記録するにはセルの書式設定をどのように書けばいいのでしょうか

  • エクセルで123,456~234,567 のカンマを入れたいのです。

    エクセルで123,456~234,567 のカンマを入れたいのです。 「通貨~通貨」の場合カンマの指定はできないでしょうか? セルの書式設定では 「~」 を使うとできないようです。 どなたかいい方法教えてください。

  • EXCELの時間表示について

    いつもおせわになってます。 今回はEXCELについて質問します。 セルの中に数字(例:8)を入れると、そのセルに08:00と表示するにはどうすればいいのでしょうか? 書式設定で時間についての項目はありますが、####と表示されたり、0:00と表示されたりとうまくいきません。 ちょっと急ぎの事なのでよろしくお願いします。

  • Excelで100分の1秒を表示したい

    Excel2000を使用しています。 100m走等、記録を表示したいのです。 「○分○○秒○○」と100分の1秒までを文字列ではなく数値として表示し、平均やタイム差など集計ができるようにしたいのです。 セルの書式設定でそれらしきものをいじってみたのですが 思うようにいきません。 どなたか対処法を教えてください。 三四郎8では、表示形式で「分 秒」で「数値の1は1秒云々」という条件指定ができるので問題はないのですが。 たぶん、Excelにもそのような指定ができるのでは、と考えているのですが・・・。

  • EXCEL カンマについて!

    セルに 1,000,000 と入力します。 (千円)を表に記入したので、書式-セル-表示形式で #,##0→#,に変更して1000にしました。 と・こ・ろ・が 1000にカンマをつけようとしてカンマボタンを押すと1,000,000に戻ってしまうのです。 どうしたら、カンマ付き1000=1,000と表示できるのでしょうか?? おわかりの方教えてくださーい!

  • エクセルの0表示とカンマについて

    Win XP EXCEL2003 です 1.合計が0の時、0を表示しないようにすると 各セルの数値にカンマが入らない。 2.各セルの数値にカンマ入れると、合計が0の時 0を表示してしまう。 各セルの数値にはカンマ入れ、合計が0の場合0を表示しない ようにするには、どのような設定をしたら良いでしょうか

  • 秒以下を含む時間の集計

    秒以下を含む時間の集計を行う場合 excelには秒以下の書式設定がありません。 例えば、秒以下を表す場合、 60進数で  04:23:32 (4分23秒32) (これを秒以下を10進数で無理やり表示すると        04:23.53 (4分23秒と100分の53秒)) このままでは  4時間23分32秒と認識されてしまします。 ------------------- 処理したいことは、 A1セルに04:23:32(4分23秒32)と入力して 以下A列に同じような時間形式でDATAを入力して BセルにB2=A1+A2のような合計時間を表示するようにしたいのですが  どのような計算式になりますか ? 60分を超える場合は、1時間とします。 例えば、  1:42:25:23 (1時間 42分 25秒 23)  46:24:13   (46分24秒13)

  • エクセルの小数点以下表示

    エクセルの小数点以下表示にツールバーの桁数上げ、下げとセルの書式設定などがありますが、それらは違う物なのでしょうか。セルの書式設定でも標準、数値、ユーザー定義の3つは表示上同じなら同じと考えてよいでしょうか。

  • 秒以下の表示

    初歩的な質問ですが,よろしくお願いします。 50m走の記録をエクセルで表示させたいのです。 例えば,10秒33で走った子どもの記録をエクセルのセルに「10.33」と入力すると,「10秒33」と表示できるようにしたい場合,どのようにすればいいのでしょう。 また,セルに表示された数で最後に平均も出したいのですが,どのようにすればいいのでしょう。 初歩的な質問ですが,よろしくお願いいたします。

専門家に質問してみよう