こんにちは!あつもり(@atumori17)です。
前回はVBScriptを使って複数のファイルやフォルダ、アプリケーションをダブルクリック1発で起動する方法を紹介しました。
今回は前回のプログラムを元にして、曜日によって起動するファイルを変える処理を追加してみたいと思います。曜日によって起動するファイルを変えることでさらに実用的なプログラムになると思います。
例えば毎週水曜日に定例会議がある場合。月曜は週報を書いて、火曜日から会議の資料を作り、水曜日に会議に臨む、というようなパターンがあったとします。そこでVBScriptで起動させるファイルやアプリケーションを下記のような感じにしてみました。
曜日 | 起動するファイル・アリケーション |
---|---|
月 | 週報のフォルダ、メールアプリ、インターネットブラウザ |
火 | 定例会議の資料フォルダ、メールアプリ、インターネットブラウザ |
水 | チャットアプリ、メールアプリ、会議メモ用のファイル |
木・金 | メールアプリ、インターネットブラウザ |
土・日 | メッセージボックス |
曜日ごとに起動させるファイル、アプリケーションが決まったので、実際にスクリプトを書いていきます。
曜日ごとに起動するファイルやアプリケーションを変えるスクリプト
テキストエディタを開き下記のコードを入力します。全て入力し終わったら「曜日で起動ファイルを変える.vbs」などのファイル名でデスクトップに保存します。
このスクリプトは前回の「複数ファイル1発起動.vbs」を元にしており、曜日ごとに起動させるファイルを変える処理を追加しています。
Option Explicit
Dim objWshShell
Dim dayName
'シェルオブジェクトの作成
Set objWshShell = WScript.CreateObject("WScript.Shell")
'曜日名を取得する
dayName = Weekday(Now)
'曜日によって処理を変える
Select Case dayName
'月曜
Case 2
objWshShell.Run "C:\Users\cellica\Desktop\週報"
objWshShell.Run """C:\Program Files (x86)\Windows Live\Mail\wlmail.exe"""
objWshShell.Run """C:\Program Files\Internet Explorer\iexplore.exe"""
'火曜
Case 3
objWshShell.Run "C:\Users\cellica\Desktop\定例会資料"
objWshShell.Run """C:\Program Files (x86)\Windows Live\Mail\wlmail.exe"""
objWshShell.Run """C:\Program Files\Internet Explorer\iexplore.exe"""
'水曜
Case 4
objWshShell.Run "C:\Users\cellica\Desktop\会議メモ.txt"
objWshShell.Run """C:\Program Files (x86)\Windows Live\Mail\wlmail.exe"""
objWshShell.Run """C:\Program Files\Chat\chat.exe"""
Case 5,6
objWshShell.Run """C:\Program Files (x86)\Windows Live\Mail\wlmail.exe"""
objWshShell.Run """C:\Program Files\Internet Explorer\iexplore.exe"""
'土・日曜
Case Else
MsgBox "今日は休みです"
End Select
'シェルオブジェクトの解放
Set objWshShell = Nothing
プログラムコードの解説
Weekday関数で曜日を取得する
Weekday関数は指定した日付の曜日を返す関数です。ここでは日付を現在の日時を返すNow関数で指定していますので、変数dayNameには現在の曜日が入ります。
注意しなければいけないのが、Weekday関数が返す曜日は数字であるということです。各数字に割り当てられた曜日は以下のようになります。
値 | 内容 |
---|---|
1 | 日曜 |
2 | 月曜 |
3 | 火曜 |
4 | 水曜 |
5 | 木曜 |
6 | 金曜 |
7 | 土曜 |
この記事を書いているのは火曜日ですので変数dayNameには3が入ります。
Select Case文で曜日ごとに処理を分ける
Select Case文を使うことで変数の値によって処理を分岐させることができます。If文を使って処理を分岐させても良いのですが、今回のように処理が5つに分岐するような場合はSelect Case文を使ったほうがプログラムコードが見やすくなります。
書きかたは以下の通りです。
Case 値1
変数が値1のときの処理
Case 値2
変数が値2のときの処理
Case Else
値1,2以外のときの処理
End Select
ここでは変数dayNameに曜日をあらわす値が入っています。この値によって実行する処理を分けています。
処理を分岐させる条件になる値ですが、カンマで区切って複数指定することもできます。
実行させる処理
Case Elseはいずれの条件にも当てはまらなかった場合の処理を指定することができます。
ここでは
Case Else MsgBox "今日は休みです"
として土曜または日曜の場合はメッセージボックスを表示させるようにしています。
プログラムの説明は以上になります。
アプリケーションを実行してみる
では実際に起動してみます。デスクトップにある「曜日で起動ファイルを変える.vbs」をダブルクリックして起動します。
この記事を書いているのは火曜日ですが、火曜日に開くように指定したファイルやアプリケーションが開きました。
まとめ
いかかでしたか?今回の内容をまとめると以下のようになります。
- VBScriptで起動するファイルを曜日ごとで分けると便利
- Select Case文で曜日ごとに処理を分岐させることができる
- Weekday関数で曜日を取得できる
使い方次第でファイルやアプリケーションを起動する手間が省けて時短になりますね。それではまた~。