VBScriptで曜日ごとに起動するファイルやフォルダ、アプリケーションを変える


こんにちは!あつもり(@atumori17)です。

前回はVBScriptを使って複数のファイルやフォルダ、アプリケーションをダブルクリック1発で起動する方法を紹介しました。

VBScriptで複数のファイル・フォルダ・アプリケーションをダブルクリック一発で開く方法
VBScriptを使って複数プログラムを1発で開く方法を紹介しています。起動ファイルを作っておけば、業務ごとに使い分けられるのでWindowsでの業務を効率化できます。また曜日によって起動するプログラムを変えるなんてこともできます。

今回は前回のプログラムを元にして、曜日によって起動するファイルを変える処理を追加してみたいと思います。曜日によって起動するファイルを変えることでさらに実用的なプログラムになると思います。

例えば毎週水曜日に定例会議がある場合。月曜は週報を書いて、火曜日から会議の資料を作り、水曜日に会議に臨む、というようなパターンがあったとします。そこで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関数で曜日を取得する

dayName = Weekday(日付)

Weekday関数は指定した日付の曜日を返す関数です。ここでは日付を現在の日時を返すNow関数で指定していますので、変数dayNameには現在の曜日が入ります。

注意しなければいけないのが、Weekday関数が返す曜日は数字であるということです。各数字に割り当てられた曜日は以下のようになります。

内容
1 日曜
2 月曜
3 火曜
4 水曜
5 木曜
6 金曜
7 土曜

この記事を書いているのは火曜日ですので変数dayNameには3が入ります。

Select Case文で曜日ごとに処理を分ける

Select Case文を使うことで変数の値によって処理を分岐させることができます。If文を使って処理を分岐させても良いのですが、今回のように処理が5つに分岐するような場合はSelect Case文を使ったほうがプログラムコードが見やすくなります

書きかたは以下の通りです。

Select Case 変数
Case 値1
変数が値1のときの処理
Case 値2
変数が値2のときの処理
Case Else
値1,2以外のときの処理
End Select

ここでは変数dayNameに曜日をあらわす値が入っています。この値によって実行する処理を分けています。

Case 値1,値2

処理を分岐させる条件になる値ですが、カンマで区切って複数指定することもできます。

Case Else
実行させる処理

Case Elseはいずれの条件にも当てはまらなかった場合の処理を指定することができます。

ここでは

Case Else
            MsgBox "今日は休みです"

として土曜または日曜の場合はメッセージボックスを表示させるようにしています。

プログラムの説明は以上になります。

アプリケーションを実行してみる

では実際に起動してみます。デスクトップにある「曜日で起動ファイルを変える.vbs」をダブルクリックして起動します。

この記事を書いているのは火曜日ですが、火曜日に開くように指定したファイルやアプリケーションが開きました。

まとめ

いかかでしたか?今回の内容をまとめると以下のようになります。

  • VBScriptで起動するファイルを曜日ごとで分けると便利
  • Select Case文で曜日ごとに処理を分岐させることができる
  • Weekday関数で曜日を取得できる

使い方次第でファイルやアプリケーションを起動する手間が省けて時短になりますね。それではまた~。

連載目次:初心者でも簡単!VBScriptでWindows効率化

Windowsを操作できるプログラミング言語「VBScript」を使って、日々の業務効率化! テキストエディタで簡単にできますので初心者にもおすすめです。
  1. 初心者でも簡単プログラムでWindowsの効率化!VBScriptをやってみよう
  2. VBScriptで複数のファイル・フォルダ・アプリケーションをダブルクリック一発で開く方法
  3. VBScriptで曜日ごとに起動するファイルやフォルダ、アプリケーションを変える
  4. VBScriptでドラッグアンドドロップしてファイルのフルパスを取得する方法
  5. VBScriptでドラッグアンドドロップで複数ファイルのフルパスをCSVに書き出す

  投稿者プロフィール

タカハシノリアキ株式会社プランノーツ 代表取締役
株式会社プランノーツ代表、コミュニティ「ノンプロ研」主宰。1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ
★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ
★フォロー頂ければ嬉しいです。

タイトルとURLをコピーしました