こんにちは!あつもり(@atumori17)です。
前回はVBScriptを使ってメッセージボックスに現在の時刻を表示させてみました。
今回はVBScriptで複数のファイルやフォルダ、アプリケーションをダブルクリック1発で起動する方法を紹介します。
朝一番、デスクに座ってパソコンを立ち上げて、メールソフト、インタネットブラウザを立ち上げて、日報フォルダを開いて・・・というようにだいたい毎日決まった作業をしませんか?それならばワンクリックで複数のファイルやアプリケーションが開いたら便利だと思いませんか?
複数のファイルやアプリケーションを開くスクリプト
テキストエディタ開き下記のコードを入力します。全て入力し終わったら「複数ファイル1発起動.vbs」などのファイル名でデスクトップに保存します。
Option Explicit
Dim objWshShell
'シェルオブジェクトの作成
Set objWshShell = WScript.CreateObject("WScript.Shell")
'シェルの実行
objWshShell.Run "C:\Users\atumori\Desktop\週報"
objWshShell.Run """C:\Program Files (x86)\SoundEngine Free\SoundEngine.exe"""
objWshShell.Run "C:\Users\atumori\Desktop\2017年6月残業.xls"
プログラムコードの解説
変数宣言を強制する
プログラムの一番最初の行に
と書くことで変数を宣言しない場合にメッセージボックスで警告を出すことができます。
変数をタイプミスしたときに、宣言されていない変数として警告を出してくれるのでとっても便利です。
変数を宣言していない場合、プログラムの実行時に以下のようなメッセージが表示されます。
Dimで変数を宣言する
次の行で作成するWshShellオブジェクトの変数を宣言します。VBScriptで変数を宣言するときにはDimステートメントを使います。
書きかたは以下の通りです。
今回のプログラムでは
Option Explicit
Dim objWshShell
としていますから、「objWshShell」という変数を宣言したということになりますね。ちなみにVBAのように変数名の後にデータ型を指定することはできません。
WshShellオブジェクトを作成してセットする
このようにWshShellオブジェクトを作成すると、VBScript上でシェルが使えるようになります。
シェルとはWindowsが持っている機能を使うためのプログラムのようなものです。シェルを使うことでフォルダを開いたり、コントロールパネルを開いたり、アプリケーションやファイルのショートカットを作ったりすることができるようになります。
Runメソッドで実行する
WshShellオブジェクト.Runはファイルやフォルダ、アプリケーションを開くためのメソッドです。
空白を含むパスは注意が必要
Runメソッドで指定するファイルパスですが、空白を含むパスの場合注意が必要です。空白を含むパスの場合は下記のように、ダブルクォテーションを3つ続けて記述します。
プログラム上に直接書き込んだ文字をリテラルと呼びます。この場合、C:\Program Files (x86)\SoundEngine Free\SoundEngine.exeがリテラルです。
リテラルに空白を使用するときは、左右をダブルクォーテーション3つで囲むというルールがあります。こうしないと下図のようなエラー内容のメッセージボックスが表示されます。
フォルダのパスの調べ方
Runメソッドで指定するフォルダやファイルパスの調べ方です。
フォルダを右クリックしプロパティを選択します。
「セキュリティ」タブをクリックして「オブジェクト名」のあとに書かれたフォルダのパスを選択します。右クリックしてコピーを選択します。
フォルダのパスを下記のようにしてダブルクォーテーションの中に貼り付けます。
プログラムの説明は以上になります。
アプリケーションを実行してみる
では実際に起動してみます。デスクトップにある「複数ファイル1発起動.vbs」をダブルクリックして起動します。さきほどRunメソッド指定したファイルやアプリケーションが開きました。
まとめ
いかかでしたか?今回の内容をまとめると以下のようになります。
- VBScriptで複数のフォルダやアプリケーションを1発で起動できると便利
- シェルオブジェクトのrunコマンドを使えばフォルダやファイルが開ける
- リテラルに空白を使うときはダブルクォテーション3つで囲む
用途別に起動ファイルを作っておけば、業務ごとに使い分けられるので便利です。また曜日によって起動するアプリケーションを変えるなんてこともできます。
次回は「VBScriptで曜日によって起動プログラムを変える方法」をご紹介します。お楽しみに~。
コメント
ExcelVBAで.txt,.xlsx,.docxwを一発で開くマクロは作成できたのですが、このスクリプトではExcelは起動するのですがファイルが開きません。
コメントありがとうございます。
解決策ですが、以下のようにしてRunメソッドの第3引数にTrueを指定することで上手くいくかと思います。
objWshShell.Run “C:\Users\test\Desktop\test.xls”,,True
試してみてください。