・VBScriptとは |
VBScriptとはWindows標準のスクリプト言語です。
言語の見栄えがVBライクのため、このような名前になったんだと思います。
用途としては、下記があります。
用途 |
解説 |
Windows ローカルスクリプト |
従来のバッチファイルの代用
ActiveXオートメーションサーバを用意に扱うことが可能です。 |
WEBブラウザスクリプト |
JavaScriptの様に使えますが、対応ブラウザがIEだけだったため
軍配はJavaScriptに上がりました。 |
WEBIサーバサイドスクリプト |
IIS ASPのサーバサイドスクリプトとして動作します。
ただし、ASPからASP.NETへの移行によって、
言語もVBScriptから、VB.NETおよびC#になりました。 |
また、COMラッパーが用意されている .Net Frameworkクラスについては、
COMを経由して.Netを利用可能です。
(ただし、COM なので引数付きコンストラクタと静的メソッドが使えません。 )
VBScriptのランゲージリファレンス(解説)はリンクから参照してください。 |
・開発環境 |
基本的には、エディタで十分だと思います。
Wzエディタ、秀丸エディタ等を使用してください。 |
・実行 |
エディタを開いて、スクリプトを書きます。
保存する際、使用言語にあわせて拡張子を決定します。
ファイルをダブルクリックするとWSHが実行されます。
コマンドプロンプト上から実行したい場合、cscript から実行すると標準出力が使えて便利です。
(標準出力とは、コマンドプロンプトへの出力の事です。)
|
・サンプル1(HelloWorld) |
プログラミングの基本(?)HelloWorldです。
|
' 「'」以降から行末まではコメントになり、WSHはこの部分を無視します。
MsgBox "Hello World!" ’メッセージボックスを表示 |
|
たった これだけです。 |
・サンプル2(アプリケーションの起動) |
ノートパッドを起動します。
|
' CreateObject 指定ID(今回はWScript.Shell)のオブジェクトを生成します。
' Set 指定変数にオブジェクトを設定します。
' 今回は、変数”objShell ”に新しく生成したWshShellクラスオブジェクトを設定します。
Set objShell = WScript.CreateObject("WScript.Shell")
' WshShellクラス Runメソッド 指定アプリを実行します。(今回はノートパッド)
objShell.Run "notepad.exe"
|
|
WScriptはいつ生成されるのかと疑問に思われる方も居るかもしれませんが、
WScriptは暗黙的に生成されるため、常に使用可能です。
|
・サンプル3(コマンドの実行)
|
コマンドラインの実行はRunメソッドを使用します。
|
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) |
|
|
引数 |
解説 |
object |
WshShell オブジェクト |
strCommand |
実行するコマンド ラインを示す文字列値です。
引数も含めます。 |
intWindowStyle |
プログラムのウィンドウの外観を示す整数値
省略可能 |
bWaitOnReturn |
プログラムの実行が終了するまでスクリプトを待機させるかどうかを示すブール値
bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの実行は中断される
Run メソッドはアプリケーションから返される任意のエラー コードを返します。
bWaitOnReturn に FALSE を指定すると、プログラムが開始すると Run メソッドは即座に復帰します。
自動的に 0 を返します。(エラーコードではない)
省略可能 |
|
|
・サンプル4(引数の取得)
|
引数とは、プログラム実行時にプログラムに渡すオプションです。
実行する際に、プログラムの後ろにスペースと引数をつけて渡します。
引数には、名前付きと名前無しがありますが、
今回は名前無しを解説します。
VBA側では、WScript.Arguments.Unnamedオブジェクトを使用します。
(名前付きの場合は、Namedオブジェクトを使用します。)
|
Set objArgs=WScript.Arguments.Unnamed
' 名前なし引数を順番に取得する
TextBody = ""
For i=0 To objArgs.Count-1
TextBody = TextBody & objArgs.Item(i)
Next |
|
|
・参考 |
[定数]
●ShellSpecialFolderConstants
注:VBScriptでは値で指定しなければならない
|
定数 |
値 |
意味 |
ssfDESKTOP |
0 |
デスクトップ |
|
1 |
Internet Explorer |
ssfPROGRAMS |
2 |
プログラム |
ssfCONTROLS |
3 |
コントロールパネル |
ssfPRINTERS |
4 |
プリンタ |
ssfPERSONAL |
5 |
マイドキュメント |
ssfFAVORITES |
6 |
お気に入り |
ssfSTARTUP |
7 |
スタートアップ |
ssfRECENT |
8 |
最近使ったファイル |
ssfSENDTO |
9 |
送る |
ssfBITBUCKET |
10 |
ごみ箱 |
ssfSTARTMENU |
11 |
スタートメニュー |
ssfDESKTOPDIRECTORY |
16 |
デスクトップ(フォルダ) |
ssfDRIVES |
17 |
マイコンピュータ |
ssfNETWORK |
18 |
ネットワークコンピュータ |
ssfNETHOOD |
19 |
NetHood |
ssfFONTS |
20 |
フォント |
ssfTEMPLATES |
21 |
テンプレート |
|
[コマンドプロンプトの特別引数オプション]
修飾子 機能・用途
%~1 全ての引用句(")を削除して%1を展開する。
%~f1 %1を完全修飾パス名に展開する。
%~d1 %1をドライブ名だけに展開する。
%~p1 %1をパスだけに展開する。
%~n1 %1をファイル名だけに展開する。
%~x1 %1をファイル拡張子だけに展開する。
%~s1 展開されたパスはMS-DOSの「8.3形式」でも短い名前だけを含む。
%~a1 %1をファイル属性に展開する。
%~t1 %1をファイルの日付・時刻に展開する。
%~z1 %1をファイルのサイズに展開する。
%~$PATH:1 PATH環境に指定されているディレクトリを検索し、最初に見つかった完全修飾名に%1を展開する。環境変数名が定義されていない場合、また検索してもファイルが見つからなかった場合は、この修飾子を指定すると空の文字列に展開する。
|
さらに情報が欲しい方は、Google検索で
|
・TOPへ戻る |