VBA(エクセルマクロ)で自動化ツールやBotを作る3 IEを動かす、マクロを10分毎に自動で実行させる。

以下ウィンドウズでの実行方法なので、マックの方はいろいろと違うかもしれません。

VBAを作成したならば、それを自動で定期的に実行させたいと思います。

そんな時、役に立つのが「タスクスケジューラー」です。

これは、何分おきなどにスクリプトを走らせることができるツールで、ウィンドウズには標準で入っています。

 

その際、一度別口でエクセルの実行確認をしなければいけません。

その方法は、バッチファイル、VBSがなんだかんだで便利です。

ノートパッドを開いて以下のようにまずは書いてみましょう。

dim xlApp,myBook
on error resume next
set xlapp=createobject("excel.application")
xlapp.visible=true
set myBook=xlapp.workbooks.open("動かしたいエクセルのファイル名")
xlapp.run mybook.name & "!"&"動かしたいマクロ名"
mybook.close true
set mybook=nothing
xlapp.quit
set objWshShell=nothing
set xlApp=nothing

これを適当な名前で拡張子を.vbsとして保存してください。

(ファイルやマクロ名を指定する際「””」は消さないようにしてください。)

保存したファイルをダブルクリックすると、指定したマクロを実行し、エクセルを閉じる、という処理を実行します。

 

ただ、これだと前の回ですでにファイルを開いていた場合、読み取り専用となってしまい、

何か値を入力したとしても保存できなくなります。

一度エクセルを強制的に終了させたほうが良いでしょう。

 

上のVBSの二行目あたりに、以下を追加してください。

Dim objWshShell
Set objWshShell = WScript.CreateObject("WScript.Shell")
for each Process in _
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery _
("select * from Win32_Process where Name='excel.exe'")
Process.terminate
Next

エクセルがないかチェックして、エクセルならば終了する、という処理です。

 

これを作ったならば、次はタスクスケジューラーに登録です。

task1

 

上記のような画面が表示されるので、右枠の「タスクの作成」をクリックします。

そうすると、まず行うのが「トリガー」の作成です。

いつ、何分おきに実行するか、などを決めます。

 

task2

 

プログラムによって実行したいタイミングは変わりますが、

10分おきに実行したい場合は以下のように設定します。

task4

アイドル時なども指定できるので、

パソコンから離れている間だけマクロを実行させたい、という要望もかなえられます。

 

続いて、何を指定するかを指定します。

「操作」のタブをクリックし、先ほど作ったVBSを指定します。

task3

これだけです。

 

これで、10分おきに自動でマクロを走らせることができるようになりました。

 

これにより何が出来るか。

株価をチェックしたいといったマクロや、

数分おきに更新をチェックするようなツール、

様々なことに役立てることが可能です。

 

タスクスケジューラーに関してはこのくらいです。

 
Share on Facebook

見積もり・問い合わせフォーム
ガチ株式会社へのお仕事ご依頼・お見積もりの問い合わせはこちらから送信ください。
ホームページ作成
PHP制作依頼
wordpressカスタマイズ依頼
システム開発見積もり依頼
飲食店販促サービス問い合わせ
求人
会ってみたい!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です