WSHが登場した当初は、マイクロソフトの公式サイトにすらヘルプもドキュメントもサンプルも満足なものがなかったうえに、その多くが英語だったが、ここ数年でその状況は大きく改善された。いまではマイクロソフトのサイトや外部サイトで多数の日本語化されたドキュメントやサンプルが入手、あるいは閲覧できるようになっている。
WSH 5.6のダウンロード・ページとして冒頭でもご紹介したが、これはWSHの総本山ともいうべきサイトである。ここではWSH(Windows Script)本体と、ヘルプ・ファイルがダウンロードできるほか、WSHやVBScriptのリファレンスを読むことができる。ヘルプ・ファイルはWSHスクリプト作成では必須となるので、忘れずにダウンロードしておこう。
ここには、VBScriptで書かれた、分野別の900本以上のスクリプトのサンプルやスクリプトを使ったツールが公開されている。また、これらのサンプル・スクリプトをローカルにダウンロードして検索するためのツール(これもスクリプトで作られている)もあるので利用するとよい。
手前みそで恐縮だが、筆者のサイトでもWSHに関する情報とサンプル・スクリプトを公開している。また、付属掲示板ではWSHに関する質疑応答が行われているので、何か分からないことがあったら、ここを参照してみるのもいいだろう。
@ITでもWSHに関する連載を公開している。プログラミングに関する知識がないととっつきにくい部分もあるかもしれないが、今回の連載でその橋渡しをするようにしていこうと思っている。
WSHのスクリプトは、テキスト・ファイルとして記述するので、テキスト・エディタと呼べるものであれば何を使っても作成できる。もちろんWindows OS標準のテキスト・エディタである「メモ帳」を使って記述することも可能だ。メモ帳なら、OSに追加のアプリケーションをインストールすることなく、スクリプトを記述できる。しかし高機能なテキスト・エディタを使うことで、より効率よくスクリプトを作成することができるだろう。VBScriptを記述するためのテキスト・エディタを選ぶポイントは次の5点である。
1.自動インデントができること
自動インデントとは、改行キーを押すと、自動的に前行と同様に行頭のスペースやタブが挿入される機能である。VBScriptは構造化された言語なので、その階層に応じて行頭にスペースやタブを入れて記述することが多い。そのため、深い階層にある行の次行には、自動的にスペースやタブが入力されるとありがたいわけである。
2.キーワードを強調表示できること
キーワードの強調表示とは、VBScriptで使われるキーワードや関数(命令文である英単語など)、文字列やコメント行を強調表示する機能(別の色で表示するなど)。これらが強調表示されることで、スクリプトが見やすくなり、スペルのミス、カッコの閉じ忘れなども発見しやすくなるというメリットがある。なお、VBScriptのキーワード設定がないエディタでも、VBScriptの基となった言語であるVisual Basicのキーワード設定を使えるならそれで問題ない。また、VBScriptキーワード設定ファイルを別途ダウンロードできる場合もあるので探してみるとよい。
3.行数・けた数が表示できること
作成したスクリプトでエラーが発生した場合、どの行のどのけたでエラーが発生したかが表示されるので、その情報を基にエラーが発生した行を訂正することになる。そのため、カーソル位置の行数・けた数が表示できるものを選ぶとスクリプトのデバッグが容易になる。
4.作成したスクリプトをエディタから実行できること
スクリプトを作成、保存した後、そのスクリプトを実行するには、通常、エクスプローラに戻ってそのファイルをダブルクリックする必要がある。スクリプトを書くときはこの保存、実行の手順を何度も繰り返すことになるが、エディタとエクスプローラを行ったり来たりするのは案外面倒である。エディタから直接、編集中のスクリプト・ファイルを実行できる機能があれば、その手間を省ける。多くのエディタでは、「関連付け実行」という名前が付けられているコマンドである。
5.VBScriptのコード入力を補完できること
入力補完とは、VBScriptのキーワードの入力を始めると、入力候補となる項目が一覧表示され、それらの選択肢から選ぶことによって入力の手間を省略できる機能である。キーワードを用いた構文のヘルプがツールチップとして表示されるものもあり、ヘルプ・ファイルを参照しなくても、コードがらくらく書けるものまである。この機能が含まれるエディタは限られているが、これがあるとスクリプト記述の効率がぐっと上がるので、試してみるとよいだろう。
これらの機能を満たすエディタをいくつか紹介しておこう。
ここまでで皆さんの手元にはWSH本体とヘルプ、エディタがそろったと思う。あとは書くだけである。冒頭に挙げたような複雑なスクリプトは取りあえず置いておいて、まずは何か簡単なものを書いてみよう。まず、メモ帳を立ち上げ、以下のように入力する。
WScript.Echo "WSHマスターに俺はなる!"
これは指定した文字列の内容をメッセージ・ダイアログに表示させる最も単純なスクリプトである。これを「名前を付けて保存」で「ファイルの種類」を「すべてのファイル」にした状態で、「first.vbs」という名前を付けて保存する。
保存したスクリプトをエクスプローラで表示させ、そのvbsファイルをダブルクリックする。
すると、図のようなダイアログが表示されるはずだ。
WSHはこのようにエクスプローラから実行することもできるが、バッチ・ファイルのようにコマンド・プロンプト内で実行することもできる。エクスプローラの右クリックメニューにも[コマンド プロンプトで開く]という項目があるが、これだとスクリプトの終了と同時にウィンドウが閉じてしまいメッセージが読めないので、別途コマンド・プロンプトを立ち上げる。まずはcdコマンドでスクリプトのあるフォルダに移動し、そこで次のコマンドを入力する。
cscript first.vbs
このコマンドを実行すると、スクリプトに書いた文字列が今度はコマンド・プロンプト内で表示されることが分かるだろう。これは、スクリプト・ホストにcscript.exeを指定したときのスクリプトの動作である。なお、エクスプローラで関連付けされているデフォルトのスクリプト・ホストはwscript.exeである。両者の使い分けであるが、ユーザーに何か問い掛けをしたり確認させたりする必要がある場合はGUI版のwscript.exeを、無人でバッチ処理をさせる際に、経過を表示させたいときにはCUI版のcscript.exeを使えばよい。
このようにWSHでは、テキスト・ファイルにスクリプトを記述することにより、その内容を実行できるということがお分かりいただけたと思う。これから学習していくことになる複雑なスクリプトも基本は同じなので、ご安心いただきたい。
次回からはこの連載のタイトルにもなっている「チェック式」で、VBScriptの基本から学習していこう。
Copyright© Digital Advantage Corp. All Rights Reserved.