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
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ミリ秒程度の精度です。
No.3
- 回答日時:
任意のセルに =NOW() と入力して、書式を「h:mm:ss.00」にしてF9(再計算)を押下すると
10:29:35.84
のように表示されるはずです。(秒未満は1/100秒刻みです)
タイマーをどのように作られたか分かりませんが、VBAの Timeでは秒単位までしか取得できません。ミリ秒単位で時間を取得するにはWindow APIのGetTickCount関数やtimeGetTime関数を使用します
サンプルは検索すれば色々と出てきます
この回答への補足
早速の回答ありがとうございます。
VBAで下記のようにしていたのですが、ミリ秒まで取得していなかったと言うことですね。
Sub スタート時刻の設定()
Range("b2").Activate
ActiveCell.Value = Now()
End Sub
VBAでのGetTickCount関数等の使い方を具体的にご教授願えませんか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Excel(エクセル) エクセルについて教えてください。 1 2022/12/26 09:01
- Excel(エクセル) 至急 Excel日付表示設定教えてください Excelの日付表示ですが、他者から送られてくるExce 6 2023/02/03 11:01
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) EXCELの書式設定を固定することはできませんか? 5 2023/06/20 17:05
- Excel(エクセル) エクセルについて教えてください。 1 2023/03/03 08:38
- Excel(エクセル) エクセルの数式で教えてください。 4 2023/06/27 09:56
- Excel(エクセル) エクセルで納品書を作成中ですが、関数を教えて下さい。 2 2022/09/05 10:32
- Excel(エクセル) Excel VBA セルの書式設定 2 2022/03/30 10:48
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
3分あったら何をしますか?
カップ麺にお湯を入れて、できるまでの3分間で皆さんは何をしていますか?
-
モテ期を経験した方いらっしゃいますか?
一生に一度はモテ期があるといいますが、みなさんどうですか? いまがそう! という方も、「思い返せばこの頃だったなぁ」という方も、よかったら教えて下さい。
-
何歳が一番楽しかった?
自分の人生を振り返ったとき、何歳のころが一番楽しかったですか? 子供の頃でしょうか、それとも大人になってからでしょうか。
-
店員も客も斜め上を行くデパートの福袋
シュールを通り越して店員も客も斜め上を行くデパートの福袋に入ってそうなものを教えて下さい。 よかったらレビューもしてください。
-
エクセルの「○分○秒」の表示形式の入力方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの計算式で求められ...
-
エクセルのセル内の余白の設定...
-
Excelで 分:秒 と表示させる...
-
エクセルで日付が逆に登録され...
-
エクセルで数式を入れても値が...
-
エクセルの計算結果を()括弧で...
-
エクセル 年/月/日 時:分:秒...
-
エクセルで西暦に変更できない
-
エクセルの分数表示
-
【Excel】 特定セルだけに「ゼ...
-
セルの書式設定で一部のフォン...
-
エクセル 桁を増やす方法
-
ユーザーフォーム内のテキスト...
-
エクセル:日付和暦の数字だけ...
-
エクセルで 何時間何分と表示...
-
3桁ないし、4桁の数字を時間に...
-
EXCELでセル内に打った文字が隠...
-
エクセルに入力された数値を ●...
-
エクセルで数字の最初に¥、終...
-
Excelで任意の文字列から小数を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのセル内の余白の設定...
-
エクセルでの計算式で求められ...
-
Excelで 分:秒 と表示させる...
-
エクセルで数式を入れても値が...
-
エクセルの計算結果を()括弧で...
-
エクセルで日付が逆に登録され...
-
エクセルの計算式の後に、単位...
-
エクセル 桁を増やす方法
-
EXCELで日付と時刻が入ったセル...
-
エクセル 条件付き書式で文字...
-
【Excel】 特定セルだけに「ゼ...
-
エクセルで折り返しと縮小の同...
-
エクセルで西暦に変更できない
-
エクセルで 何時間何分と表示...
-
エクセル:日付和暦の数字だけ...
-
数字の後ろにピリオドを表示す...
-
エクセルの分数表示
-
エクセルで、書式設定をして表...
-
Excelで来年の日付を簡単に入力...
-
セルの書式設定で一部のフォン...
おすすめ情報