Excel VBA

【Excel VBA】【マクロ】【Tips】VBSで時間差でファイルを開く

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回はVBSについてのTips回です!!!

VBSで時間差でファイルを開く

複数の処理を実行するときに、数秒後に実行する方法をご紹介します。
例えば、VBSを使って複数のファイルを開きたいけど、続けて実行するとうまく開いてくれない・・・!
こんなときに是非使ってみてください!

コード

Option Explicit
'変数を宣言
Dim waitSec
Dim filePath1
Dim filePath2

waitSec = 5

filePath1 = "C:\Users\Lenoco\Desktop\1つ目のファイル.xlsx"
CreateObject("Shell.Application").ShellExecute filePath1

WScript.Sleep waitSec * 1000

filePath2 = "C:\Users\Lenoco\Desktop\2つ目のファイル.xlsx"
CreateObject("Shell.Application").ShellExecute filePath2

コードの説明

「Option Explicit」で、変数の宣言を強制しています。
変数を宣言します。VBSはデータ型を省略します。
waitSecは、あけたい秒数をいれます。今回は5秒で設定しています。
filePath1とfilePath2はファイルのパスを設定しています。
同時に使うことが無いため、「filePath」を1つ用意して使いまわしでも問題ないかと思います。
CreateObject関数を使い、1つ目のファイルを開きます。
そのあとに、WScript.Sleepメソッドを使って処理を5秒停止させます。
引数に、ミリ秒で指定します。
今回「WaitSec * 1000」としていますが、変数を使わずに直接5000と指定してもOKです。
指定された時間(今回は5秒)停止した後、2つ目のファイルを開きます。

さいごに

うまく動いたでしょうか?
1つ目のファイルが開くのに時間がかかり、2つ目のファイルがうまく開かない!!
ということが以前業務であったので、このVBSを使っていました!
「VBSを実行してから○秒後にメッセージを出す」ということもできるので、
アイディア次第でいろいろなことができそうなワクワクする命令ですね!

Lenoco

COMMENT

メールアドレスが公開されることはありません。