Public fso, indexPageTS, i Set objIE = Wscript.CreateObject("InternetExplorer.Application") 今回のVBScript入門の第5回は、条件が一致するまで同じ処理を繰り返すループ制御の方法について説明いたします。 お世話になります。ご教授ください。類似の質問が既にあるのかもしれませんが、質問させていただきます。。。HTML上に記述するVBScriptでは、WScriptは使用できないという記事を見かけます。実際、HTML+VBScriptで使用すると、変数は宣言 お問合せはこちらでも受け付けています。 Dim rootFolder, rootPath For i=1 To 5 wmp.Controls.play()'再生 Do WScript.sleep 5 '5秒待ってみる Loop Until wmp.playState = 1 '再生中が終わるまで繰り返して待つ wmp.Controls.currentPosition = 0 '冒頭に巻き戻す Next. sleep の代替.   動作するコードとしないコードは次のとおりです。 IE 6.0 Copyright(c) 2015 PC TECHNOLOGY CO.,LTD. <動作し...続きを読む, >WScript.Sleep 1000 のように書けば文字列を2行に分けて書くこともできます。. loop, do while i < 10 動作しないコードについても,notepadの起動まではできます。 Option Explicit 1秒待ち [email protected], 【ExcelVBA入門】PasteSpecialメソッドで形式を選択して貼り付ける方法. Idx = Idx + 1 3、名前を付けて保存 ファイル名は自由ですが、拡張子は 必ず .vbs とします。 環境の問題なのか、プログラムの問題なのか判断できません。 @ITで指定したプロセスIDをアクティブにしてキーを送る記事があったので、参考になると思います。 do while i < 10 googletag.defineSlot('/21812778492/blog_300x250_common_sidemiddle01_adsense', [[300, 250], [336, 280]], 'div-gpt-ad-1565198726712-0').addService(googletag.pubads()); *************************** <正常に動作するコード> SendKeyがIEに送信されません。 }); VBAで処理を指定時間止める場合に使用します。Sleep関数はVBAの関数ではなく、Windows APIの関数です。, VBAで指定した時間だけ処理を止める方法はSleep関数を使う以外にも、ApplicationオブジェクトのWaitメソッドを使う方法などがあります。, VBAで処理を指定時間止めるにはWindows APIのSleep関数を使うことが多いです。, Sleep関数は処理を止める時間をミリ秒(1秒の1000分の1)単位で指定することができます。, 一方で、VBAではApplicationオブジェクトのWaitメソッドで時間を指定して処理を止めることもできます。ただWaitメソッドは多くの方が秒単位でしか停止時間を指定できないと思われているようです。, Waitメソッドでもミリ秒単位で停止する方法を知らないがために、みなさんWindows APIのSleep関数を使われているのではないでしょうか?, この記事では、Windows APIのSleep関数使い方とVBAのApplicationオブジェクトのWaitメソッドの使い方を詳しく解説し、それぞれの実際の停止時間を計測比較してみましょう。, Windows APIのSleep関数を呼び出して使用するには、マクロのエディターの一番上に以下のように記述する必要があります。, このサンプルコードを実行すると、long型変数timeで指定した時間だけ遅れてメッセージボックスが表示されます。, ApplicationオブジェクトのWaitメソッドを秒単位で指定する場合は、以下のように記述します。, Now関数で現在の時刻を取得し、それにTimeValue関数の値を加算することで、停止する時刻を指定します。この例の場合、現在の時刻の1秒後を指定したことになります。, 今度は引数内のNow関数を「[ ]」で囲っています。こうすることでミリ秒単位で停止時間を指定することができます。, この例の場合、現在の時刻の500ミリ秒後を指定したことになります。86400000という数字は1日をミリ秒に換算した値です。, ちなみに、Now関数やTimeValue関数の使い方については、こちらで詳しく解説していますので、ぜひ参考にしてくださいね。, それではWindows APIのSleep関数とApplication.Waitメソッドで停止時間の精度を比較してみましょう。, 停止時間は100ミリ秒で設定しています。時間の取得にはWindows APIのGetTickCountを使用して、ミリ秒単位で取得します。, 停止時間を100ミリ秒で指定すると、どちらも多少の誤差が生じ精度は同じくらいです。ちなみに停止時間を500ミリ秒で指定すると、どちらも計測結果は500ミリ秒となり、精度に差はありませんでした。, この結果から、Windows APIのSleep関数とApplication.Waitメソッドどちらを使っても構わないと言えるかと思います。, Windows APIのSleep関数は関数を呼び出す手間はかかりますが、ミリ秒単位で時間を指定できます。Application.Waitメソッドは秒単位の指定以外にも、ミリ秒単位でも時間を指定できます。, 停止時間の精度を実測比較しましたが、どちらも同じような精度でしたので、どちらを使っても構わないと言えます。どちらか使いこなすことができるように、この記事を何度も参考にして下さいね!, 当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。 Edit request. このように、にサブプロシージャを記述しております。少し中略します。に以下のボタンを置きます。 WScript.Sleep 1000 長い文字列の途中で改行する場合は、 CreateObject("WScript.Shell") 24時間×365日分、コンピュータの電源も切れず、ずっとスクリプト動かしつづけてなきゃいけないわけですし。 IEのバージョンは8、OSはWinXPです。 スクリプトのプロセスをミリ秒で指定された長さだけ非アクティブにした後、実行を再開します。Sleep(WScript オブジェクト)。組み込みオブジェクトのリファレンス集。Windows Script Host(WSH)のサンプル集とリファレンスを掲載。 もし、VBSで無理であるのならほかの言語で可能な言語を教えていただきたく思います。 AppActivateメソッドを使うのでは?, HTML Application(HTA)である期間スリープしたいと思っているのですが、いい方法が見つかりません。 Why not register and get more from Qiita? (注意) intervalId = SetInterval("ShowWait", 500) 逆もしかりです。, VBScriptでHTMLのセレクトボックスで表示されている値(value)に指定したいと思っています。どのようにすればよいのでしょうか?詳しくは下記参照。 Set objIE = WScript.CreateObject("InternetExplorer.Application") 以上なのですが,何か点検するべき事項などありましたらご教示ください。, WSHが動作しなくて困っています。 処理がクライアント(ブラウザ)で動くか、サーバ(IIS)内で動くかを理解されていますか? objShell.Run "notepad.exe" wmp.settings.volume = 100 '音量設定、希望の音量にして下さい。 WScript.Echo "メモ帳を起動します。" MsgBox "end" VBScript から無理やり CScript を実行して Sleep できないかなぁ http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html Dim Idx = 0 SetTimeout はLoop処理をいったん止めるということは googletag.defineSlot('/21812778492/blog_300x250_common_ctc02_adsence', [300, 250], 'div-gpt-ad-1566564559478-0').addService(googletag.pubads()); スクリプト起動中に、waitさせる方法. 他にも On Error でラベルが使えませんし、 googletag.defineSlot('/21812778492/blog_300x250_common_ctc01_adsence', [300, 250], 'div-gpt-ad-1566564396953-0').addService(googletag.pubads()); です。 WshShell.SendKeys("test") どうやら,sleepとsendkeysが動いてくれないようです。 i = i + 1 VBS(VBScript)によるスクリプトを一時停止する方法(waitさせる方法)を紹介. Sub ShowWait() By following users and tags, you can catch up information on technical fields that you are interested in as a whole, By "stocking" the articles you like, you can search right away. HTA + VBScript (+ Javascript)でコントロールボックスを制御できますか? dim i 例:”value_1”を指定してVBSで選びたい ですが、開いたIEのウィンドウがアクティブにならず、 ですが、この方法だとOnLoadで処理していることになるかと。 WSHShell.Runメソッドを使用した 同期ではないものです。 【大阪コールセンター】 大阪府大阪市浪速区日本橋3-6-3 日本橋NFビル   前回のコラム「VBScriptで条件分岐処理 その2」では、Select文による条件分岐処理を紹介いたしました。 今回のVBScript入門の第5回は、条件が一致するまで同じ処理を繰り返すループ制御の方法について説明いたします。 WScript.Sleep 5000 Set objShell = WScript.CreateObject("WScript.Shell") Do // fixed01のWORKSが不定期なため共通処理とする IE起動前にプロセス一覧を記録し、起動後に増えたIEのプロセスをうまく引ければ実現できそうですね。, プログラムでは無く、環境によるものです。 APIを呼べませんし、色々と不便な所があります。 2016.02.23. Option Explicit ================ --------------------------------------------------