VBScript

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ
VBScript
VBSccriptファイル形式icon.png
デベロッパーマイクロソフト
初登場1996 ; 26年前 (1996
安定リリース
5.8
OSウィンドウズ
ファイル名拡張子.vbs.vbe.wsf.wsc.asp.hta.htm.html
Webサイトdocs .microsoft .com / en-us / previous-versions / t0aew7h6(v = vs .85)
主な実装
Windows Script HostActive Server Pages
に影響を受けた
Visual Basic
影響を受け
Windows PowerShell

VBScriptMicrosoftVisual Basic Scripting Edition」)は、Microsoftによって開発されたActive Scripting言語であり、VisualBasicをモデルにしていますこれにより、Microsoft Windows システム管理者は、エラー処理サブルーチン、およびその他の高度なプログラミング構造を備えたコンピューターを管理するための強力なツールを生成できます。これにより、ユーザーはコンピューティング環境の多くの側面を完全に制御できます。

VBScriptは、コンポーネントオブジェクトモデルを使用して、実行中の環境の要素にアクセスします。たとえば、FileSystemObject(FSO)は、ファイルの作成、読み取り、更新、および削除に使用され ますVBScriptは、 Windows98以降のMicrosoftWindowsのすべてのデスクトップリリースにデフォルトでインストールされています[1] Windows NT 4.0 OptionPack以降のWindowsServer ; [2]およびオプションでWindowsCEを使用(インストールされているデバイスによって異なります)。

VBScriptスクリプトは、ホスト環境内で実行する必要があります。ホスト環境には、 Windows Script Host(WSH)、Internet Explorer(IE)、Internet Information Services(IIS)など、MicrosoftWindowsで提供されているものがいくつかあります。[3]さらに、VBScriptホスティング環境は、Microsoft Script Control(msscript.ocx)などのテクノロジを介して他のプログラムに埋め込むことができます。

歴史

VBScriptは、1996年に発売されたMicrosoft Windows Script Technologiesの一部として始まりました。このテクノロジ( JScriptも含まれています)は、当初はWeb開発者を対象としていました。VBScriptは2年強の間に、バージョン1.0から2.0に進化し、その間に、1980年代初頭に最初に開発されたバッチ言語よりも強力な自動化ツールを求めるWindowsシステム管理者からのサポートを得ました。[4] 1996年8月1日、 VBScriptを含む機能を備えたInternetExplorerがリリースされました。[5]

バージョン5.0では、VBScriptの機能が拡張され、正規表現などの新機能が追加されました。クラス; Withステートメント[6]別のスクリプトの実行中に作成されたスクリプトコマンドを評価および実行するためEvalExecute、およびExecuteGlobal関数。GetRef、[7]およびDistributed COM(DCOM)サポートを介した関数ポインタシステム。

バージョン5.5では、SubMatches [8]がVBScriptの正規表現クラスに追加され、最終的にスクリプト作成者が式のグループ内のテキストをキャプチャできるようになりました。その機能はすでにJScriptで利用可能でした。

.NET Frameworkの登場により、スクリプトチームは、 Web開発用のASP.NET内にVBScriptの将来のサポートを実装することを決定しました[9]。したがって、VBScriptエンジンの新しいバージョンは開発されません。今後は、バグ修正とセキュリティ強化を担当するMicrosoftのSustaining EngineeringTeamによってサポートされます。Windowsシステム管理者の場合、MicrosoftはWindowsPowerShellへの移行をお勧めしますただし、スクリプトエンジンは、MicrosoftWindowsおよびIISの将来のリリースで引き続き出荷されます。[要出典]

環境

Microsoft Internet Explorerでクライアント側のWeb開発に使用する場合、VBScriptの機能はJavaScriptと似ていますこれは、HTMLページに埋め込まれている、またはHTMLページから含まれ、ページのドキュメントオブジェクトモデル(DOM)と対話する実行可能関数を記述して、HTMLだけでは不可能なタスクを実行するために使用されます。ただし、 FirefoxOpera、最近のChromeなどの他のWebブラウザーには、VBScriptのサポートが組み込まれていません。つまり、クライアント側のスクリプトとブラウザ間の互換性が必要な場合、開発者は通常、VBScriptなどの他のほとんどのプログラミング言語よりもJavaScriptを選択します。

VBScriptは、Webページのサーバー側処理、特にMicrosoft Active Server Pages(ASP)でも使用されます。ASPエンジンおよびタイプライブラリasp.dllは、 vbscript.dllを呼び出してVBScriptスクリプトを実行します。ASPページに埋め込まれているVBScriptは、<%および%>コンテキストスイッチ内に含まれています。次のVBScriptを使用したASPページの例では、現在の時刻が24時間形式で表示されますが、Windowsオペレーティングシステムでのエラーメッセージのデフォルトスクリプトとしても使用されます。

 <% Option  Explicit  %>
 <!DOCTYPE HTML PUBLIC "-// W3C // DTD HTML 4.01 Transitional // EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 	<頭>
 		<title> VBScriptの例</ title>
 	</ head>
 	<本体>
 		<div> <% 
 			'Now()関数から現在の時刻を取得します。
 			'コンテキストスイッチ(<%)の後に発生する' = '記号は省略形です
 			'ResponseオブジェクトのWrite()メソッドの呼び出し。
 			Dim  timeValue   timeValue  =  Now  %>
 			24時間形式の時間は、 
 			<%= Hour timeValue %><%= Minute timeValue %><%= Second timeValue %> 		</ div>
 	</ body>
 </ html>

VBScriptを使用して、 MicrosoftWindowsを実行しているワークステーションで直接実行されるアプリケーションを作成することもできます最も単純な例は、Windows Script Host(WSH)環境を利用するスクリプトです。このようなスクリプトは通常、ファイル拡張子 が。のスタンドアロンファイルにあります.vbsスクリプトは2つの方法で呼び出すことができます。Wscript.exeは、ダイアログや入力ボックスなどのGUIを介して出力を表示し、入力を受け取るために使用されます。Cscript.exeは、コマンドライン環境で使用されます。

VBScriptは、 WindowsスクリプトファイルHTMLアプリケーションの2種類のスクリプトファイルに含めることができます

Windowsスクリプトファイル(WSF)は、XMLに基づいてスタイル設定されます。WSFファイルには、複数のVBSファイルを含めることができます。その結果、WSFファイルはコードの再利用の手段を提供します。クラスまたは関数のライブラリを1つ以上の.vbsファイルに格納し、ファイルに含めることができる.wsfため、機能をモジュール方式で再利用できます。ファイルには拡張子が付いており、ファイルと同じようにwscript.exeまたはcscript.exe.wsfを使用して実行できます。 .vbs

HTMLアプリケーション(HTA)は、HTMLに基づいてスタイル設定されます。ファイル内のHTMLはユーザーインターフェイスの生成に使用され、VBScriptなどのスクリプト言語はプログラムロジックに使用されます。ファイルには拡張子が付いており、 mshta.exe.htaを使用して実行できます

VBScript(およびJScript)は、他のCOM対応アプリケーションから呼び出すことができるActiveX対応のスクリプトクラスであるWindowsスクリプトコンポーネントでも使用できます。[10]これらのファイルの拡張子は.wscです。

VBScriptは作成が簡単で、メモ帳のような使いやすいテキストエディタを使用してコーディングできます。拡張機能によって保存された単純なVBScriptは、.vbsそれをダブルクリックすることでWindowsシステムで実行できます。

機能性

言語機能

VBScriptの言語はVisualBasicでモデル化されているため、同様のカテゴリ(プロシージャ、制御構造、定数、変数、ユーザーインタラクション、配列処理、日付/時刻関数、エラー処理、数式、オブジェクト、正規表現、文字列操作など。[11]

以下は、MicrosoftによるVBScript言語の紹介のいくつかの重要なポイントです。

「プロシージャ」は、コードをより小さなモジュールに分割するためのVBScriptの主要な構成要素です。VBScriptは、代入ステートメントで結果を返すことができる関数と、できないサブルーチンを区別します。パラメータは定位置であり、値または参照によって渡すことができます。

制御構造には、通常の反復および条件付きDoループ、If-Then-Elseステートメント、およびCaseステートメントが含まれ、ElseIfやネストされた制御構造などのより複雑なバリアントが含まれます。

コーディングのメモリ補助として、そして確かに読みやすさのために、論理値の場合はTrueとFalse、MsgBoxコードの場合はvbOKCancelとvbYesNo、色の値の場合はvbBlackとvbYellow、キャリッジリターン文字の場合はvbCRなど、多数の定数があります。と他の多く。

変数にはデフォルトで「Variant」タイプがありますが、変換関数(CInt、CDateなど)を使用して特定のタイプ(整数、日付など)を強制することが可能です(場合によっては必要です)。

MsgBoxユーザーインタラクションは関数を 介して提供されInputBox、メッセージと入力のためのシンプルなダイアログボックス形式を提供します。どちらの関数もプロンプトメッセージを表示し、前者は標準の応答を返し、後者はユーザーが入力した1つのテキストまたは数値を返します。コントロールとのより複雑なGUIの相互作用のために、VBScriptをHTMLと組み合わせて、たとえばHTMLアプリケーションで使用できます。VisualBasicまたはVisualBasic for Applicationsのように、イベント駆動型フォームはサポートされていません

名前では大文字と小文字は区別されません。ただし、一貫性を保ち、慎重に活用することは、VBScriptスタイルのベストプラクティスと見なされます。

VBScriptの機能

VBScriptは、 Windows Script Hostによってホストされている場合、スクリプト言語に共通する多くの機能を提供しますが、Visual Basic6.0からは利用できません。これらの機能には、以下への直接または簡単なアクセスが含まれます。

  • 名前付きおよび名前なしのコマンドライン引数、
  • リダイレクトされる可能性のあるStdinstdout
  • コンソールに書き込み、リダイレクトできないWSH.Echo、
  • DOSバッチファイルから、またはスクリプトファイルを呼び出したプロセスによってテストできるWSH.ExitCode、
  • ネットワークプリンタ、
  • ネットワーク共有、
  • デスクトップ、お気に入り、マイドキュメントなどの特別なフォルダ、
  • グループメンバーシップなどのネットワークユーザー情報、
  • 実行時に定義されたテキストの実行時実行のメソッド:Eval and Execute、
  • リモートマシンでスクリプトを実行するためのメソッド、
  • Windows Management Instrumentation(WMI)
  • 広く知られている言語を使用して、他のアプリケーションにVBScriptエンジンを埋め込むための機能。

コマンドラインランナーであるCScriptは、次のオプションを提供します。

  • インタラクティブまたはバッチモード、
  • コマンドラインからデバッグモードを呼び出す、
  • 行番号を含むエラー報告。

追加機能

ファイルシステム管理、ファイル変更、およびストリーミングテキスト操作は、スクリプトランタイムライブラリを使用して実装されますscrrun.dllこれにより、FileSystemObject、File、TextStreamなどのオブジェクトが提供され、Windowsファイルシステムがプログラマーに公開されます。

バイナリファイルとメモリI / Oは、「ADODB.Stream」クラスによって提供されます。このクラスは、文字列ビルダー(コストがかかる可能性のある過度の文字列連結を回避するため)、およびバイト配列と文字列の相互変換にも使用できます。データベースへのアクセスはActiveXData Objects(ADO)を介して可能になり、IISメタベースは十分な権限を持つGetObject()関数を使用して操作できます(サイトと仮想ディレクトリの作成と破棄に役立ちます)。XMLファイルとスキーマは、 Microsoft XMLライブラリ アプリケーションプログラミングインターフェイスmsxml6.dllmsxml3.dll )で操作できます。)。これは、XMLHTTPおよびServerXMLHTTPオブジェクト(それぞれクラス文字列「MSXML2.XMLHTTP.6.0」および「MSXML2.ServerXMLHTTP.6.0」)を介してワールドワイドウェブからコンテンツを取得するためにも使用できます。

ActiveXテクノロジを介して機能を追加することもできます。セキュリティ上の懸念から、多くのActiveXコントロールがMicrosoftによってInternet Explorerプロセスでブラックリストに登録され、脆弱なMicrosoftおよびサードパーティのコードを無効にするために毎月のWindowsセキュリティ更新を介してキルビットが展開されています。[12] [13]

プログラマーは、COM(ActiveX)モジュールを介して拡張性を利用して、スクリプトホストとVBScriptに必要な機能または必要な機能を具体的に装備できます。たとえば、「VTool」コンポーネントは、多数のダイアログウィンドウ、バイナリファイルアクセス、およびその他の機能を追加します。[14]

開発ツール

Microsoft ScriptEditorは特定のバージョンのMicrosoftOfficeにバンドルされてい ますが、 MicrosoftはVBScript用のIDE(統合開発環境)を定期的に利用できるようにはしていません。

デバッグの目的で、ツールが何年も更新されていなくても、Microsoft ScriptDebuggerを現在のWindowsバージョンで使用できます。これにより、ユーザーはVBScriptコードにブレークポイントを設定できますが、ユーザーインターフェイスは不器用です。

サードパーティのソースから入手可能なVBScriptデバッガーがあり[15] [16]、多くのテキストエディターは言語の構文の強調表示を提供します

実行中にエラーが発生すると、スクリプトホストは、エラーの種類と問題のある行の番号を示すメッセージを発行します。

を使用します

VBScriptは汎用スクリプト言語ですが、いくつかの特定の使用領域が注目に値します。まず、Microsoft環境のシステム管理者の間で広く使用されています。[17]この状況は、 PowerShellのプロモーションと使用の増加によって変わる可能性があります次に、VBScriptは、テスト自動化ツールであるQuick TestProfessionalのスクリプト言語です。[18]注意すべき3番目の領域は、産業用オペレーターインターフェイスやヒューマンマシンインターフェイスなどの一部の組み込みアプリケーションの内部スクリプト言語としてVBScriptを採用していることです。階層型DBMSInterSystemsCaché ( MUMPS 言語にルーツを持つ)は、保存されたコードをプログラミングするためのVBScript、CacheBASICの実装もサポートします。[19]

VBScriptは、強い型付け、拡張エラートラップ、可変数のパラメーターをサブルーチンに渡す機能など、完全なVisualBasicのいくつかの便利な機能を省略しています。ただし、習得が容易であり、VBScriptの商標が認められている限り、その言語でコードを実装する人はMicrosoftに使用料を支払う必要がないため、この使用法は比較的広く使用されています。[要出典]組織がMicrosoftからVisualBasic for Applications(VBA)のライセンスを取得すると、Autodesk、StatSoft、Great Plains Accounting、Visio(その後、Microsoftに買収)などの企業が行ったように、完全なVBAコードを再配布できます-その製品を使用した環境の作成とデバッグ。

Outlook 97のマクロ言語として、VBAの代わりにVBScriptが使用されます。

VBScriptは、Windowsベースの環境での監視だけでなく、日常のオフィスタスクの自動化にも効果的に使用できます。これは、サーバー管理者、MS Officeユーザー、およびその他の技術貢献者にとって最初に選択されるツールです。[要出典]効果的なデータベース接続のために 、ADODB ActiveXデータオブジェクト(ADODB)と連携して使用することもできます。

VBScriptを使用して、数十億ドルの費用がかかるOutlook97の電子メールの添付ファイルを介して拡散するILOVEYOUワームなどのマルウェアやウイルスを作成することもできます。これは、 FirefoxOperaChromeなどの一部のブラウザがサポートしていない主な理由でもある可能性があります。[憶測?]

も参照してください

参考文献

  1. ^ WSHバージョン情報、MSDN
  2. ^ VBScriptバージョン情報、MSDN
  3. ^ VBScriptとは何ですか?、MSDNライブラリ
  4. ^ 86-DOS
  5. ^ 「VisualBasicの歴史」www.johnsmiley.com
  6. ^ Visual Basic Sc​​ripting Edition:ステートメント付き、MSDN
  7. ^ GetRef関数、MSDN
  8. ^ Visual Basic Sc​​ripting Edition:SubMatches Collection、MSDN
  9. ^ VBScriptはどうですか?、 MSDNのScripting Clinic(2000年7月14日)のMicrosoftCorporationのAndrewClinickによるJScript.NETの紹介の記事内
  10. ^ Windowsスクリプトコンポーネントの紹介、MSDN
  11. ^ 「VBScript機能」msdn.microsoft.com
  12. ^ 「ActiveXコントロールがInternetExplorerで実行されないようにする方法」Microsoft2007-08-24 2009年6月29日取得
  13. ^ 「Microsoftセキュリティアドバイザリ(960715):ActiveXキルビットのロールアップを更新する」Microsoft2009-01-17 2009年6月29日取得
  14. ^ 「VTool」スクリプトコンポーネント– WSH / VBSのGUIおよび機能拡張
  15. ^ 「VbsEdit-デバッガーを備えたVBScriptエディター-VBSエディター」www.vbsedit.com
  16. ^ Corp.、スプラインテクノロジー。「SplineTechVBSデバッガー、VBScriptデバッガー。VBSのデバッグ」www.remotedebugger.com
  17. ^ Script Center、システム管理スクリプターを対象としたMicrosoftWebサイト
  18. ^ クイックテストプロフェッショナル–VBScriptの基本
  19. ^ 「非構造化データ分析のためのキャッシュ」インターシステムズ2018年9月24日取得

外部リンク