RSSユーザー
エクセルマクロをオンタイムメソッドで実行する方法についてです
いつも大変お世話になっております。
以下のプログラムをオンタイムメソッドで9:00~11:30,12:30~15:00まで1分おきに実行するには何を書き足せばよいでしょうか、お教えください。(UWSCのタイムスケジュールで9:00~14:59まで1分おきの式でやっているのですが11:31~12:29までの1時間のムダな実行を省きたいのです)
Sub Macro8()
If Sheets("株価").Cells(1 ,6) = 0 Then
Macro7
End If
End Sub
2020年09月28日
大野 了
こんにちは!!
1点確認させてください。
こちらのご質問ですが・・・
『UWSCにて1分毎にMacro8は起動するので、
呼ばれたMacro8の方で、11:30~12:30は動かないようにしたい』
という事でしょうかー?
それとも
『UWSCは使わず、Macro8だけでonTimeを使って1分ごとに繰り返して、
11:30~12:30を覗いて、1分ごとに動かしたい』
という事でしょうかー?
2020年09月28日
RSSユーザー
すみません。
『UWSCは使わず、Macro8だけでonTimeを使って1分ごとに繰り返して、
11:30~12:30を覗いて、1分ごとに動かしたい』
の方です。
UWSCだと15:00ジャストがないので!(難しければ前者でもOKです!)
2020年09月28日
大野 了
なるほど!!
テストができていませんが、以下の内容で大丈夫だと思います。
11:30と15:00は、現物ですと数秒の違いでマーケットが閉まっている可能性があるため
9:00~11:29、12:30~14:59
となっています!!
Sub Macro8()
If ("0900" <= Format(Now, "hhnn") And Format(Now, "hhnn") < "1130") _
Or _
("1230" <= Format(Now, "hhnn") And Format(Now, "hhnn") < "1500") Then
If Sheets("株価").Cells(1, 6) = 0 Then
'Macro7
End If
End If
Call Application.OnTime(Now + TimeValue("00:01:00"), "Macro8")
End Sub
2020年09月28日
大野 了
あっ
Macro7がコメントになってしまっていますので、
そこだけ元に戻してください!!
2020年09月28日
RSSユーザー
本当に素早い対応、感謝です。
明日が楽しみデス。
2020年09月28日
RSSユーザー
残念ながら、動いていませんでした。'Macro7の'も取ったのですが!
2020年09月29日
大野 了
今、こちらでテストしてみたのですが、
正常に動作しました。
Macro8を1度動かしたら、
その後は1分単位で繰り返して動いているのですが、
Macro8を動かされても、1分単位で動かない感じでしょうかー?
2020年09月29日
RSSユーザー
すみません、プログラムが動いているので15:00までさわれませんでした。15:00すぎに時刻をそれぞれ3時間ずらして、表示→マクロ表示→macro8実行をクリックしたら動き出しました。自動で9時には動かなかったということになります。
2020年09月29日
大野 了
なるほどー!!
OnTimeメソッドは、指定した時刻に対象メソッドを動かすためのもので、
スケジューリングの機能は持ち合わせていません。
繰り返し動かす場合は、この指定した時刻に動く機能を利用し、
『今から1分後に、もう一度Macro8を動かす』
というものを繰り返して、1分間隔でマクロを動かす機能となります。
ですので、OnTimeを使用する場合は、
9:00より前にMacro8を一度動かしてあげる必要がありまーす!!
2020年09月29日
RSSユーザー
つまり、8:50とかにuwscでmacro8を実行させればあとはオンタイムメソッドで動くよということでしょうか。
2020年09月29日
大野 了
はい、大丈夫だと思います!!
2020年09月29日