• ベストアンサー

プログラムを一定時間とめるコードの際に24時をまたぐととまらないようにするには?

お世話になります。 以下のコードだと24時をまたぐ際に プログラム自体が停止してしまうんでうバグがあるんですよね。ちょっと解決方法がおもいつかないので 詳しい方教えて下さい。よろしくお願いします。 st = Timer   Do While Timer - st < 3     DoEvents   Loop

  • mixiho
  • お礼率41% (251/608)

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

st = Timer Do past = Timer - st If past < 0 Then past = past + 24 * 3600 DoEvents Loop While past < 3

関連するQ&A

  • vb2005でプログラムをとめるコードは?

    お世話になります。 vb2005でプログラムに5秒間、時間をとめようとおもいます。 これだとTimerにエラーがでてしまいます。 ('Timer' は型です。有効な式ではありません。) どこをどうなおせばエラーがでなくなるのでしょうか? 教えてください。お願いします。 Dim sngSt As Single sngSt = Timer Do While Timer - sngSt < 5 DoEvents() Loop

  • webbrowserにappendChildでyahooへのリンクを追加させるには?

    お世話になります。 以下のvb6のコードを見ていただきたいですが bodyタグの中にh1タグしかない簡単なページに <a href="http://www.yahoo.co.jp">ヤフーへ</a> というaタグをウェブブラウザに表示させた際に追加させたいと 思っています。 その際、href属性とhttp://www.yahoo.co.jpという値を つけくわえるコードがわかりません。 {vb.netだと elem.SetAttribute("HREF", http://www.yahoo.co.jp) で記述できるみたいですが、vb6だとコンパイルエラーがでてしまいます} どのようにコーディングすればよろしいでしょうか? 教えてください。お願い致します。 Private Sub Command1_Click() WebBrowser1.Navigate ("http://hoho.hiho.jp/") Do While WebBrowser1.Busy = True '何もしないループ(笑) DoEvents Loop Start = Timer Do While Timer - Start < 2 DoEvents Loop Dim elm As IHTMLElement Set elem = WebBrowser1.Document.createElement("A") elem.innerText = "ヤフーへ" WebBrowser1.Document.body.appendChild (elem) End Sub

  • Excelでタイマーの一時停止するボタンのコードは

    Excelでタイマーを作ったけど、一時停止できないとやっぱ面白くないと気づき、一時停止機能を付け加えたいが、まだ勉強し始めたばかりなので自分でコードが書けません。 なので、一時停止させるコードがわかる方教えてください。 <タイマーのコード> Sub タイマー() Dim EndTime Dim PassTime EndTime = Timer + Range("D5").Value * 60 + Range("F5").Value Do PassTime = Timer Range("D5").Value = (EndTime - PassTime) \ 60 '分 Range("F5").Value = (EndTime - PassTime) Mod 60 '秒 DoEvents Loop Until EndTime - PassTime <= 0 Beep MsgBox "時間です" End Sub

  • for loop の処理が途中でプログラムを終えてもつづいてしまうのをやめさせるには?

    お世話になります。 for a = 1 to 10000 ~~処理~~ now = Timy While Timy < now + 2 DoEvents Wend loop ~~ とコーディングしてるのですが 途中でプログラムを終わらしても コンピューターの方でプログラムが続いてるみたいなのですが終わらすにはどうすればよいでしょうか?

  • DoEvents

    VBSでDoEventsは使えないのでしょうか? *************************** Dim ObjIE dim i Set ObjIE = CreateObject("InternetExplorer.Application") ObjIE.Navigate "http://oshiete.goo.ne.jp/" ObjIE.Visible = True Do While ObjIE.Busy = True DoEvents Loop Do While ObjIE.Document.ReadyState <> "complete" DoEvents Loop Set ObjIE = Nothing *************************** だと、エラーになりました。 Wscript.sleep 3000 ならエラーにならずにコードは動きました。 VBAならDoEventsは使えるのに VBSで使えない理由を教えてください。

  • WebBrowserについて

    Visual Studio 2008を使っています 途中で処理が停止しまい困っています デバックで一時停止をすると Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop この部分で作業が止まっています 何かいい方法はないでしょうか? ソースは下記の通りです WebBrowser1.Navigate(New Uri("http://※※※※※※※※※※※※)) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop ______________________________ Threading.Thread.Sleep(1000)とか入れても止まってしまいます 秒数はいろいろ試しましたが駄目でした WebBrowser1.Navigate(New Uri("※※※※※※※※※※※※)) Threading.Thread.Sleep(1000) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop

  • Webbrowserで完全にHPを表示させるまで待機したい。

    VB6.0を使っています。 Webbrowserを使いまして HPの表示を完了するまで待機するようにしようと思いました。 しかし表示前に”読み取り終了”になってしまいます。 表示するまで待機させるにはどうすればいいのでしょうか? どうかお願いいたします。 Label1.Caption = "読み取り中" WebBrowser1.Navigate "http://www.yahoo.co.jp" Do While WebBrowser1.Busy = True DoEvents Loop Do While WebBrowser1.Document.ReadyState <> "complete" DoEvents Loop Label1.Caption = "読み取り終了" あと、基本的な操作なのですが プロジェクトを読み込んだすぐにはコードもオブジェクトも表示されません。 一度実行してからコードを出さざるを得ないのですが これはどうすればいいのでしょうか?

  • Or  And  確実に表示させるにはどちらを?

    http://okwave.jp/qa/q5586837.html を見て思ったのですが、 ブラウザを表示させるまで待つ場合、 Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop と Do While objIE.Busy = True And objIE.readyState <> 4 DoEvents Loop ではどちらを使ったほうがいいのでしょうか? どちらもサイトを表示できてますが、確実に表示されるのはどちらなのか教えてください。

  • WebBrowserにてsubmitの前にnavigateしてしまう

    いつもお世話になっております。 VB2005ユーザーです。 WebBrowser内の"submit"を押したあと、違うページに行きたいのですが、 "submit"を押す前に"Navigate"で指定しているページに行ってしまいます。 このようなコードを書いています。 With WebBrowser1 .Navigate("最初のURL") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop .Document.Forms(0).InvokeMember("submit") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop .Navigate("次の指定URL") Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete System.Windows.Forms.Application.DoEvents() Loop 「指定URL」は"submit"により新しいHTMLが生まれるので、その後の作業のためにどうしても"submit"を押したいのですが、上のようなコードですと先に「指定URL」に行ってしまいます。 "submit"をクリックせず、無視してしまうのです。 Navigate("次の指定URL")を外せばクリックしてくれるのですが・・・。 WebBrowserを完全に待機させる方法などが必要なのでしょうか? 宜しくご教授のほどお願い致します。

  • VBAで指定時刻まで一時停止するコード

    VBA初心者です。 業務で使用するため、VBAで指定時刻まで一時停止するコードを作りたいのですが、うまくいきません。 設定したい条件は (1)当日の午前9時から実行 (2)記述しているコードの実行が終了したら、当日の午後6時まで一時停止 (このとき他の業務でExcelを使用するので、Excelの動作を止めないためにDoEventsと記述してOSに制御を移しています) (3)当日午後6時になったら、コードの実行を再開する 以上です。 今のところ、午後6時まで動作が停止せず、すぐに午後6時以降に実行したいコードが実行されてしまいます。 どういうコードを記述すればいいでしょうか?教えてください。 ------------------------------------------------------------------------------------------------------------------ ~(中略)~ Dim PauseTime As Single Dim Start As Variant Dim Finish As Date Dim TotalTime As Variant Start = Now() Do PauseTime = Start + TimeValue("08:59:20") DoEvents Loop While Now() < Finish Finish = TimeValue("18:00:03") ~(中略)~ ------------------------------------------------------------------------------------------------------------------

専門家に質問してみよう