1

初期値ありのテキストボックスをn秒後に自動的に閉じるワザのご紹介です。

わたしはこんなニーズに適用しました。

ニーズ

  • システムからデータを抽出して、実績を集計
  • 普段は前日分を翌日に作業
  • 金土日分は月曜にまとめて作業
  • 手動実行で安定化後、スケジュール実行も見据えたい
  • 毎早朝のスケジュール実行なら、常に前日を指定すれば良い
  • 失敗分のリカバリ、年末年始、GW、夏休み等に備え、任意の日付分を手動実行する余地も残しておきたい
  • 1シナリオで実現したい

 

WinActorパーツの構成

  • 日時取得(今日)
  • 日付計算(-1日後)
  • ファイルと関連づいているアプリ起動:enter10sLater.vbs
  • インプット(初期値あり):抽出日を入力してください、今日-1、結果
    (この後に、抽出+集計の処理が続く)

 

[enter10sLater.vbs]の中身

Set WshShell=Wscript.CreateObject("Wscript.Shell")
WScript.Sleep(10000)
WshShell.SendKeys("{ENTER}")

 

インプット(初期値あり)

https://winactor.com/questions/question/インプットボックスの初期値設定について

asaさん+kenjiさんに感謝!

 

補足

[enter10sLater.vbs]はピンポンダッシュ式で動かす必要があるため、外部VBSとした
「スクリプト実行」でこのままライブラリ化すると、完了を待ってしまい、成り立たない
「ファイルと関連づいているアプリ起動」なら完了を待たずに済む

今は安定化させる段階
不安定要素はほぼない
このままスケジュール実行に放り込める見込み
10秒後としている箇所は、手動実行時の感覚を踏まえて微調整するかも

SendKeysのリファレンスはどこも似たり寄ったり

https://www.google.com/search?q=sendkeys+vbs

今回はここの伏線を回収したカタチ
10秒待機後にEnterするVBS

https://winactor.com/questions/?q=待機ボックスで表示したメッセージボックスのOKボタンを押すシナリオを書きたい

 

 

[enter10sLater.vbs]は「Webページからのメッセージ」系のポップアップにも使えます。
「Webページからのメッセージ」系への対処は、いくつか流派がある模様です。

ブラウザ関連ライブラリの「ダイアログクリック」:標準の1ライブラリ、オフィシャルで安心か
https://winactor.com/questions/question/【ブラウザ】chromeでのポップアップ操作について/

クリック後にウィンドウハンドル取得:標準ライブラリの組み合わせ、手法が確立されてる印象
https://winactor.com/questions/question/【サンプル】ポップアップウィンドウの操作につ/

クリック(Win32)text 値⇒OK:標準の1ライブラリの設定カスタマイズ、成功実績はあるものの汎用性や安定性はどうなんだろう
https://winactor.com/questions/question/「webページからのメッセージ」をウィンドウ識別/
http://www.matchcontact.net/winactor_jp/faq.asp?faqno=JPN00170&sugtype=4

ウィンドウ識別+Enter:今回紹介したワザとも親戚的な関係
https://winactor.com/questions/?q=IE%E3%80%80「Webからのメッセージ」の対応方法について

NTT DATA製IE制御ライブラリの「IE_ダイアログボタン操作」:追加提供の1ライブラリ、オフィシャルで安心か
https://winactor.com/questions/question/「webページからのメッセージ」で識別されない/

 

質問の投稿

回答とコメントは、会員登録(無料)で閲覧できるようになります。
会員登録(無料)する