質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%

Q&A

解決済

1回答

422閲覧

VBAプロセスを0.1秒間隔で起動したい

sigefuji

総合スコア123

0グッド

0クリップ

投稿2023/05/24 12:05

実現したいこと

excel VBAで一定間隔ごとにプロセスタスク(プロセディアー?)の関数(表現がおかしいかも)を起動を1秒以下の間隔で起動すること。

前提

発生している問題・エラーメッセージ

下記のコードのTimeSerialでは最小1秒しか設定できないようです。しからばと1秒のシリアル値の0.00001より小さな値を設定しても、
タイマーが働かないようです。よくわかりませんが、mOnTimeの分解能の限界かもわかりません。
タイマー起動を0.1秒くらいにする方法はあるでしょうか。

エラーメッセージ なし

該当のソースコード

VBA

1Option Explicit 2 3Public mOnTime As Date 4 5Sub TimerProc() 6 Range("A1") = Format(Time, "yy/mm/dd hh:mm:ss") 7 Range("A1").NumberFormatLocal = "yymmdd hhmmss" 8End Sub 9 10Sub OnTimeStart() 11 Dim serial 12 Call TimerProc   'タイマ起動されたときの処理(短時間の処理) 13 serial = 0.00001/10   '約100ms 14 Range("a2") = serial 15 mOnTime = Time() + serial 16' mOnTime = Time() + TimeSerial(0, 0, 1) '最小1秒 17 Call Application.OnTime(mOnTime, "OnTimeStart") 18End Sub 19 20Sub OnTimeStop() 21 '同一のProcedureとEarliestTimeがないとエラーになる 22 On Error Resume Next 23 Call Application.OnTime(mOnTime, "OnTimeStart", , False) 24End Subソースコード

試したこと

特になし

補足情報(FW/ツールのバージョンなど)

EXCEL2021,32ビット版

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pig_vba

2023/05/25 03:50

winAPIのSetTimerやapplication.waitを使ってみるのはいかがでしょうか。ミリ秒単位で設定できたはずです
sigefuji

2023/05/25 12:01

ご返事ありがとうございます。 タイマーはいろんな方法があるのですね。 その後、調べたところ、タイマー機能を使わずとも、セルが更新あるいは再計算の度毎に発生する、イベントハンドラーを起動する方法がわかりやすいので、その方向で進めています。この質問外のやりたいことについて、説明しなかったことはお詫びします。VBAでこの種の処理が経験がなく、適切に質問できなかったことお詫びします。
pig_vba

2023/05/26 07:13

一応、セル更新の度に実行するWorksheet.Changeイベントを使用する場合条件が条件なので意図しないタイミングで発火したり無限ループに陥ったりすることが割と起こるので気持ち注意しておいた方がいいと思います
guest

回答1

0

自己解決

セルが更新あるいは再計算の度毎に発生する、イベントハンドラーを起動する方法がわかりやすいので、その方向で進めています。
従って、質問のタイマー処理を使用しない方向で進めています。

投稿2023/05/25 12:03

sigefuji

総合スコア123

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問