Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4674 / 13644 ツリー ←次へ | 前へ→

【55259】Application.OnTimeの中断方法 トキ 08/4/25(金) 9:36 質問[未読]
【55260】Re:Application.OnTimeの中断方法 VBWASURETA 08/4/25(金) 9:45 質問[未読]
【55262】Re:Application.OnTimeの中断方法 VBWASURETA 08/4/25(金) 9:51 発言[未読]
【55264】Re:Application.OnTimeの中断方法 トキ 08/4/25(金) 10:12 お礼[未読]
【55265】Re:Application.OnTimeの中断方法 VBWASURETA 08/4/25(金) 10:33 回答[未読]
【55267】Re:Application.OnTimeの中断方法 VBWASURETA 08/4/25(金) 10:51 発言[未読]
【55292】Re:Application.OnTimeの中断方法 トキ 08/4/25(金) 20:27 お礼[未読]
【55261】Re:Application.OnTimeの中断方法 Jaka 08/4/25(金) 9:50 発言[未読]
【55293】Re:Application.OnTimeの中断方法 トキ 08/4/25(金) 20:28 お礼[未読]

【55259】Application.OnTimeの中断方法
質問  トキ  - 08/4/25(金) 9:36 -

引用なし
パスワード
   Application.OnTimeの中断について,下記の通り作ったん
ですが,出来たり出来なかったり(エラー)しますが
何故でしょうか? お願いします。


Sub ボタン1_Click()
Application.OnTime Now + TimeValue("00:00:02"), "my"
End Sub
-------------------------------------------------------
Sub my()
MsgBox ("aaa")
End Sub
-------------------------------------------------------
Sub ボタン2_Click()
Application.OnTime Now + TimeValue("00:00:02"), "my", , False
End Sub

【55260】Re:Application.OnTimeの中断方法
質問  VBWASURETA  - 08/4/25(金) 9:45 -

引用なし
パスワード
   おはようございます。

まず、質問が2点あります。
タイマーが出来たり出来なかったりの具体内容を教えて下さい。
発生手順や、出来たり出来なかったりということは場合によっては
できるということですよね?その場合も教えて下さい。

次にエラーとありますがどのようなエラーでしょうか?

この辺りだけでも書かないとレスが付きませんからご注意ください。

【55261】Re:Application.OnTimeの中断方法
発言  Jaka  - 08/4/25(金) 9:50 -

引用なし
パスワード
   >Sub ボタン1_Click()
>Application.OnTime Now + TimeValue("00:00:02"), "my"
>End Sub

上の時間と下の時間は一緒というか同じだと思います?

>Sub ボタン2_Click()
>Application.OnTime Now + TimeValue("00:00:02"), "my", , False
>End Sub

【55262】Re:Application.OnTimeの中断方法
発言  VBWASURETA  - 08/4/25(金) 9:51 -

引用なし
パスワード
   ぱっと見で一つ注意するとしたら

> Sub ボタン2_Click()
> Application.OnTime Now + TimeValue("00:00:02"), "my", , False
> End Sub

のOntime関数の引数を理解されてますか?
最後のfalseになっている部分が特にですがタイマーを予約と
するかの判定になる部分で何故予約しないにしているのかが
謎なのです。

【55264】Re:Application.OnTimeの中断方法
お礼  トキ  - 08/4/25(金) 10:12 -

引用なし
パスワード
   ありがとうございます。

>のOntime関数の引数を理解されてますか?
>最後のfalseになっている部分が特にですがタイマーを予約と
>するかの判定になる部分で何故予約しないにしているのかが
>謎なのです。

引数はよくわかりません。
ファイルを開いた時は,出来ていますが,
何回か「実行」と「中断」を繰り返したり,
「中断」だけ実行すると下記のエラーがでます。

ontimeメソッドは失敗しました。Applicationオブジェクト

エラーが出てから,ファイルをいったん閉じてまた開くと
出来るようなんですが・・・・


Sub ボタン1_Click()
Application.OnTime Now + TimeValue("00:00:02"), "my"
End Sub
-------------------------------------------------------
Sub my()
MsgBox ("aaa")
End Sub
-------------------------------------------------------
Sub ボタン2_Click()
Application.OnTime Now + TimeValue("00:00:02"), "my", , False
End Sub

【55265】Re:Application.OnTimeの中断方法
回答  VBWASURETA  - 08/4/25(金) 10:33 -

引用なし
パスワード
   ▼トキ さん:
とりあえずOnTime関数は自分も使ったことがないので、
MSDN見てみました。

//msdn.microsoft.com/library/ja/default.asp?url=/library/ja/vbaxl11/html/xlmthOnTime1.asp

で、Jakaさんが指摘している理由がわかりましたけど。

>Application.OnTime Now + TimeValue("00:00:02"), "my", , False

は予約解除とするために入れてるわけですよね?
但し、MSDNを見た限りセットされた時間と一緒でなければならない
ということです。
これでどこが問題か気付きましたか?

もしどうしてもわからないのでしたら
Boolean変数を使ってボタン1でTrueとしてボタン2でFalseで
動くプロシージャで判定したらどうですか?
これが一番手っ取り早い方法ですよ。

【55267】Re:Application.OnTimeの中断方法
発言  VBWASURETA  - 08/4/25(金) 10:51 -

引用なし
パスワード
   ヒント2です。

というか原因そのままですが。

>Application.OnTime Now + TimeValue("00:00:02"), "my"



Now関数ですがご存知ですか?
Now関数は随時現在のシステム日時を取得します。
なので、ボタン1を押されたタイミングと
ボタン2が押されたタイミングでNow関数から
取得する日時(時間)が違います。

この場合通常は、Date変数に入れるなりして保持するんです。
そうするとセットしたタイマと誤差がなく保持している内容は変わりませんから。

【55292】Re:Application.OnTimeの中断方法
お礼  トキ  - 08/4/25(金) 20:27 -

引用なし
パスワード
   わかりました。
時間の同時ですね。
まだ動作確認してませんが
できると思います。
ありがとうございました。

【55293】Re:Application.OnTimeの中断方法
お礼  トキ  - 08/4/25(金) 20:28 -

引用なし
パスワード
   変数を使用すれば
いいのですね。
わかりました。
ありがとうございました。

4674 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free