VBScript(ブイ・ビー・スクリプト)は、Visual Basic (VB) のサブセット(簡易版)で、マイクロソフト製のスクリプト言語である。Microsoft Windows上やInternet Information Server (IIS)上で動作する。
目次
1 概要
2 背景
3 主な特徴
3.1 動的型付け
3.2 OLEクライアント機能
3.3 オブジェクト指向機能
4 他言語との比較
4.1 VB / VBAとの比較
4.2 JScriptとの比較
5 VBScriptとセキュリティ
6 コード例
7 関連項目
8 外部リンク
//
VBScript (Microsoft Visual Basic Scripting Edition)はVisual Basicの構文を真似てつくられた、Windowsのネイティブスクリプト言語であり、Active Scriptingのスクリプトエンジンという形態で実装されている。ランタイムとしてASPやWSHがあり、主な用途として、
Active Server Pages (ASP) などを使用したサーバサイドスクリプティング処理
Windows Script Host (WSH) を利用したWindows上でのネイティブ・スクリプト
Internet Explorerを使用したクライアントサイドスクリプティング処理
HTML Applications (HTA)アプリケーション
が挙げられる。
ただし、WWWクライアントスクリプトとしては、対応するブラウザが Windows版のInternet Explorerだけであり、2005年現在ではほとんど使われていない。
HTAやASP、HTML中に組み込まれることが多いが、単体のスクリプトファイルとしておかれる場合、拡張子は通常.vbsを使用する。
VBScriptは1996年8月、WWWのクライアントスクリプト言語としてInternet Explorer 3.0に実装された。当時ネットスケープコミュニケーションズとマイクロソフトは ブラウザ戦争と呼ばれるWebブラウザシェアとWeb標準を巡る技術競争下にあり、1996年3月にNetscape Navigator 2.0 に実装されたJavaScriptに対抗するものとして、JavaScript互換のスクリプト言語 JScriptと共に実装されたものである。
結果として、WWWのクライアントスクリプト言語としては、VBScriptが Windows版Internet Explorerでしか動作しなかったことなどから、JavaScriptが勝利を収め、この分野でのVBScriptはほぼ死語となった。しかし、1996年12月、Internet Information Sarver 3.0 (IIS 3.0)に実装された Active Server Pages (ASP)のデフォルトのサーバサイドスクリプト言語としてVBScriptが採用された。ASPは、当時サーバサイドスクリプトホストとして有力であった CGIのHTMLを出力するスクリプトを記述するアプローチと異なり、HTML中の動的な部分にのみスクリプトを埋め込むというアプローチをとり、習熟の容易さから成功を収めた。同時にそのデフォルト言語としてVBScriptの地位も確固たるものとなった。
一方、VBScriptはWWWだけでなく、Windowsのネイティブスクリプト言語として、Windows Script Host (WSH)のデフォルト言語として採用された。WSHはバッチファイルを置き換えるものとして位置づけられ、Windows 95 OSR2より標準でインストールされるようになった。
当時のマイクロソフトはActiveX戦略のもと、WWWとクライアント環境のシームレスな統合を目指したが、その中核スクリプト言語としてWSH、ひいてはVBScriptを位置づけた。そのため、VBScriptはActiveXオートメーションサーバを取り扱うことに長け、全ての操作はオートメーションサーバよりオブジェクトを生成し、それを介して行うという統一されたスタイルを持つ。これは、言語自身が環境に依存しないメリットももたらすが、反面、単純なファイルコピーでさえオブジェクトを生成し操作する手続きが必要という煩雑さももたらした。この煩雑さはユーザスクリプトのバッチファイルからの移行を阻害するものとなった。
また、ActiveX戦略自体、相重なるセキュリティ問題を引き起こし、WSH上のVBScriptを利用したウイルスの出現などもあったことからセキュリティ面から敬遠される向きもあった。
簡単な処理も煩雑な記述になってしまう点、セキュリティ面のダーティなイメージから、VBScriptは圧倒的なシェアをもつOSのデフォルトのスクリプト言語にしてはあまり普及せず、Windowsのネイティブスクリプト言語としてのVBScriptは、一定の評価はできるものの成功したとは言えない。
マイクロソフトは2000年代初頭から ActiveXに変わる戦略として、 .NET戦略を打ち立てており、ASPも2002年にリリースされたASP.NETに置き換えられ、その記述言語も C#やVisual Basic .NET等となった。また、OSのネイティブスクリプト環境についてもWSHからWindows PowerShellへ移行すると言う。
2006年現在の展望では、PHPに代表されるオープンソースのサーバサイドスクリプト言語が徐々にIIS上でも安定した動作が期待できるようになってきており、サーバサイドスクリプト言語としてのVBScriptも一部の根強い人気を除けばほぼその役割を終え、緩やかに衰退していくものと思われる。
VBScriptは、OLEサーバの接着剤としてのスクリプト言語というコンセプトのもと設計された。Windowsのネイティブスクリプト言語と説明したが、Windowsが.NET戦略への転換を迎えた現在では、むしろOLE (ActiveX)のネイティブスクリプト言語といった方が正しい。
極端なOLE偏重設計であるため、VBScriptは言語自身にはファイル入出力さえサポートしない(FileSystemObjectを使用する)。
また、動的型付けを採用している点もVisual Basicシリーズとしては異色である。
VBScriptは多くのスクリプト言語同様、動的型付け言語であるため、変数に型はない。
VBScriptのデータ型には、Empty 値、Null 値、ブール型、バイト型、整数型、通貨型、日付型、文字列型、オブジェクト型、エラー型などがあるが、これら型情報はデータ側が持ち、変数自体に型はない。(または 変数はバリアント型のみだとも言われる)。
VBScriptは変数宣言または明示的な変数生成ステートメントを必須としない。はじめて使われるシンボルは変数として自動的に生成される。しかし、代入だけでなく、参照でも変数を生成してしまうため、タイプミスによる不具合を誘発しやすい。
そのため、変数宣言を強要する Option Explicitステートメント をファイル先頭で宣言するのが良いコーディングスタイルと言われる。明示的に変数を生成するには Dim、Private、Public、ReDimなどの各ステートメントを用いる。