VBScript-クイックガイド

VBスクリプトはの略です Visual BVisual Basic for Applications(VBA)のサブセットを形成するasicスクリプティング。VBAはMicrosoftの製品であり、MSProjectやMSOfficeなどの他のMicrosoft製品だけでなく、AUTOCADなどのサードパーティツールにも含まれています。

VBScriptの機能

  • VBScriptは軽量のスクリプト言語であり、非常に高速なインタープリターを備えています。

  • VBScriptは、ほとんどの場合、大文字と小文字を区別しません。構文は非常に単純で、習得と実装が簡単です。

  • C ++やJavaとは異なり、VBScriptはオブジェクトベースのスクリプト言語であり、オブジェクト指向プログラミング言語ではありません。

  • コンポーネントオブジェクトモデルを使用します (COM) それが実行されている環境の要素にアクセスするため。

  • VBScriptの正常な実行は、InternetExplorerなどのホスト環境で実行された場合にのみ発生します。 (IE)、インターネットインフォメーションサービス (IIS) およびWindowsScripting Host (WSH)

VBscript –バージョン履歴と使用法

VBScriptは1996年にMicrosoftによって導入され、最初のバージョンは1.0でした。VBScriptの現在の安定バージョンは5.8であり、IE8またはWindows 7の一部として利用できます。VBScriptの使用領域は豊富で、以下のリストに限定されません。

  • VBScriptは、人気のある自動化テストツールの1つであるQuick TestProfessionalのスクリプト言語として使用されます。 QTP

  • Windows Scripting Hostは、主にWindowsシステム管理者がWindowsデスクトップを自動化するために使用します。

  • Active Server Pages (ASP)、VBScriptまたはJavaスクリプトを使用する動的Webページを作成するためのサーバー側スクリプト環境。

  • VBScriptは、Microsoft InternetExplorerのクライアント側スクリプトに使用されます。

  • Microsoft Outlookフォームは通常、VBScriptで実行されます。ただし、アプリケーションレベルのプログラミングはVBA(Outlook 2000以降)に依存しています。

短所

  • VBscriptは、IEブラウザでのみ使用されます。Chrome、Firefoxなどの他のブラウザはVBScriptをサポートしていません。したがって、JavaScriptはVBScriptよりも優先されます。

  • VBScriptでは、コマンドラインのサポートが制限されています。

  • デフォルトで利用可能な開発環境がないため、デバッグは困難です。

VBScriptは今日どこにありますか?

VBScriptの現在のバージョンは5.8であり、.NET Frameworkの最近の開発に伴い、MicrosoftはWeb開発のためにASP.NET内でVBScriptの将来のサポートを提供することを決定しました。したがって、VBScriptエンジンの新しいバージョンはこれ以上ありませんが、欠陥の修正とセキュリティの問題全体は、マイクロソフトの維持エンジニアリングチームによって対処されています。ただし、VBScriptエンジンは、デフォルトですべてのMicrosoftWindowsおよびIISの一部として出荷されます。

最初のVBScript

「HelloWorld」を出力するVBScriptを作成しましょう。

<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         document.write("Hello World!")
      </script>
   </body>
</html>

上記の例では、HTMLドキュメントに文字列を書き込む関数document.writeを呼び出しました。この関数は、テキスト、HTML、またはその両方を書き込むために使用できます。したがって、上記のコードは次の結果を表示します-

Hello World!

空白と改行

VBScriptは、VBScriptプログラム内に表示されるスペース、タブ、および改行を無視します。プログラム内でスペース、タブ、改行を自由に使用できるため、コードを読みやすく理解しやすいように、プログラムをきちんと一貫した方法で自由にフォーマットおよびインデントできます。

フォーマット

VBScriptは、MicrosoftのVisualBasicに基づいています。JavaScriptとは異なり、セミコロンなどのステートメントターミネータは特定のステートメントを終了するために使用されません。

単一行の構文

コロンは、VBScriptの2行以上を1行で記述する必要がある場合に使用されます。したがって、VBScriptでは、コロンは行区切り文字として機能します。

<script language = "vbscript" type = "text/vbscript">
   var1 = 10 : var2 = 20
</script>

複数行の構文

VBScriptのステートメントが長く、ユーザーがそれを複数行に分割したい場合、ユーザーはアンダースコア「_」を使用する必要があります。これにより、コードの可読性が向上します。次の例は、複数の行を操作する方法を示しています。

<script language = "vbscript" type = "text/vbscript">
   var1 = 10 
   var2 = 20
   Sum = var1 + var2  
   document.write("The Sum of two numbers"&_"var1 and var2 is " & Sum)
</script>

予約語

次のリストは、VBScriptで予約されている単語を示しています。これらの予約語は、定数や変数、またはその他の識別子名として使用しないでください。

ループ LSet
モッド 新着
ない 何もない ヌル
オン オプション オプション
または ParamArray 保存する
民間 公衆 RaiseEvent
ReDim レム 履歴書
RSet 選択する セットする
共有 シングル 静的
やめる サブ 次に
本当 タイプ
そして なので ブール値
ByRef バイト ByVal
コール 場合 クラス
Const 通貨 デバッグ
薄暗い 行う ダブル
そうしないと ElseIf
空の 終わり EndIf
列挙型 Eqv イベント
出口 誤り にとって
関数 取得する GoTo
場合 インプ 実装
整数 です
しましょう お気に入り 長いです
TypeOf まで バリアント
ヴェンド 一方
Xor 評価 実行する
Msgbox 消去 ExecuteGlobal
オプション明示 ランダム化 SendKeys

大文字と小文字の区別

VBScriptは case-insensitive language。つまり、言語のキーワード、変数、関数名、およびその他の識別子は、一貫した大文字の大文字で入力する必要はありません。したがって、識別子int_counter、INT_Counter、およびINT_COUNTERは、VBScript内で同じ意味を持ちます。

VBScriptのコメント

コメントは、プログラムロジックと、他のプログラマーが将来同じコードでシームレスに作業できるユーザー情報を文書化するために使用されます。によって開発された、によって変更されたなどの情報を含めることができ、組み込まれたロジックを含めることもできます。コメントは、実行中にインタプリタによって無視されます。VBScriptのコメントは、2つの方法で示されます。

1. Any statement that starts with a Single Quote (‘) is treated as comment.

以下は例です-

<script language = "vbscript" type = "text/vbscript">
   <!—
      ' This Script is invoked after successful login
      ' Written by : TutorialsPoint
      ' Return Value : True / False
   //- >
</script>

2. Any statement that starts with the keyword “REM”.

以下は例です-

<script language = "vbscript" type = "text/vbscript">
   <!—
      REM This Script is written to Validate the Entered Input
      REM Modified by  : Tutorials point/user2
   //- >
</script>

最新のブラウザのすべてがVBScriptをサポートしているわけではありません。VBScriptはMicrosoftのInternetExplorerだけでサポートされていますが、他のブラウザ(FirefoxとChrome)はJavaScriptだけをサポートしています。したがって、開発者は通常、VBScriptよりもJavaScriptを好みます。

Internet Explorer(IE)はVBScriptをサポートしていますが、この機能を手動で有効または無効にする必要がある場合があります。このチュートリアルでは、InternetExplorerでVBScriptサポートを有効または無効にする手順について説明します。

InternetExplorerのVBScript

InternetExplorerでVBScriptをオンまたはオフにする簡単な手順は次のとおりです-

  • メニューから[ツール]→[インターネットオプション]に従います

  • ダイアログボックスから[セキュリティ]タブを選択します

  • [カスタムレベル]ボタンをクリックします

  • スクリプトオプションが見つかるまで下にスクロールします

  • [アクティブスクリプト]の下の[有効にする]ラジオボタンを選択します

  • 最後に[OK]をクリックして出てきます

Internet ExplorerでVBScriptサポートを無効にするには、下の[無効にする]ラジオボタンを選択する必要があります。Active scripting

HTMLファイルでのVBScriptの配置

HTMLドキュメントのどこにでもVBScriptコードを含めることができる柔軟性があります。ただし、HTMLファイルにVBScriptを含める最も好ましい方法は次のとおりです。

  • <head> ... </ head>セクションのスクリプト。

  • <body> ... </ body>セクションのスクリプト。

  • <body> ... </ body>セクションと<head> ... </ head>セクションのスクリプト。

  • 外部ファイルでスクリプトを作成し、<head> ... </ head>セクションに含めます。

次のセクションでは、VBScriptをさまざまな方法で配置する方法を説明します。

<head> ... </ head>セクションのVBScript

ユーザーがどこかをクリックしたときなど、特定のイベントでスクリプトを実行する場合は、次のようにそのスクリプトを先頭に配置します。

<html>
   <head>
      <script type = "text/Vbscript">
         <!--
            Function sayHello() 
               Msgbox("Hello World")
            End Function
         //-->
      </script>
   </head>
   
   <body>
      <input type = "button" onclick = "sayHello()" value = "Say Hello" />
   </body>
</html>

次の結果が生成されます-SayHelloという名前のボタン。ボタンをクリックすると、「HelloWorld」というメッセージとともにメッセージボックスがユーザーに表示されます。

<body> ... </ body>セクションのVBScript

スクリプトがページのコンテンツを生成するようにページの読み込み時にスクリプトを実行する必要がある場合、スクリプトはドキュメントの<body>部分に配置されます。この場合、VBScriptを使用して定義された関数はありません-

<html>
   <head> </head>
   <body>
      <script type = "text/vbscript">
         <!--
            document.write("Hello World")
         //-->
      </script>
      <p>This is web page body </p>
   </body>
</html>

これにより、次の結果が生成されます-

Hello World
This is web page body

<body>セクションと<head>セクションのVBScript

次のように、VBScriptコードを<head>セクションと<body>セクションにまとめて配置できます。

<html>
   <head>
      <script type = "text/vbscript">
         <!--
            Function sayHello() 
               msgbox("Hello World")
            End Function
         //-->
      </script>
   </head>
   
   <body>
      <script type = "text/vbscript">
         <!--
         document.write("Hello World")
         //-->
      </script>
      <input type = "button" onclick = "sayHello()" value = "Say Hello" />
   </body>
</html>

次の結果が生成されます-「SayHello」ボタンのあるHelloWorldメッセージ。ボタンをクリックすると、「HelloWorld」というメッセージが表示されたメッセージボックスがユーザーに表示されます。

Hello World 

外部ファイルのVBScript

VBScriptをより広範囲に使用し始めると、サイトの複数のページで同一のVBScriptコードを再利用している場合があることに気付くでしょう。複数のHTMLファイルで同一のコードを維持することに制限されていません。

スクリプトタグを使用すると、外部ファイルにVBScriptを格納し、HTMLファイルにそれを含めることを可能にするメカニズムを提供します。これは、scriptタグとそのsrc属性を使用してHTMLコードに外部VBScriptファイルを含める方法を示す例です。

<html>
   <head>
      <script type = "text/vbscript" src = "filename.vbs" ></script>
   </head>
   <body>
      .......
   </body>
</html>

外部ファイルソースからVBScriptを使用するには、すべてのVBScriptソースコードを拡張子「.vbs」の単純なテキストファイルに記述してから、上記のようにそのファイルを含める必要があります。たとえば、次のコンテンツをfilename.vbsファイルに保持し、filename.vbsファイルをインクルードした後にHTMLファイルでsayHello関数を使用できます。

Function sayHello()
   Msgbox "Hello World"
End Function

QTPでのVBScriptの配置

VBScriptはQTP(Quick Test Professional)ツールに配置されますが、HTMLタグで囲まれていません。スクリプトファイルは拡張子.vbsで保存され、Quick TestProfessional実行エンジンによって実行されます。

VBScript変数

変数は、スクリプトの実行中に変更できる値を保持するために使用される名前付きのメモリ位置です。VBScriptにはONE 基本的なデータ型、 Variant

Rules for Declaring Variables −

  • 変数名はアルファベットで始まる必要があります。

  • 変数名は255文字を超えることはできません。

  • 変数にはピリオド(。)を含めないでください

  • 変数名は、宣言されたコンテキストで一意である必要があります。

変数の宣言

変数は「dim」キーワードを使用して宣言されます。基本データ型は1つしかないため、宣言されたすべての変数はデフォルトでバリアントです。したがって、ユーザーNEED NOT 宣言時にデータのタイプに言及します。

Example 1 −この例では、IntValueを文字列、整数、または配列として使用できます。

Dim Var

Example 2 − 2つ以上の宣言はコンマ(、)で区切られます

Dim Variable1,Variable2

変数への値の割り当て

値は代数式と同様に割り当てられます。左側に変数名があり、その後に等しい(=)記号が続き、右側にその値が続きます。

ルール

  • 数値は二重引用符なしで宣言する必要があります。

  • 文字列値は二重引用符( ")で囲む必要があります

  • 日付と時刻の変数はハッシュ記号(#)で囲む必要があります

' Below Example, The value 25 is assigned to the variable.
Value1 = 25

' A String Value ‘VBScript’ is assigned to the variable StrValue.
StrValue = “VBScript”

' The date 01/01/2020 is assigned to the variable DToday.
Date1 = #01/01/2020#

' A Specific Time Stamp is assigned to a variable in the below example.
Time1 = #12:30:44 PM#

変数の範囲

変数は、変数のスコープを決定する次のステートメントを使用して宣言できます。変数のスコープは、1つまたは複数のプロシージャ内で使用される場合に重要な役割を果たします。

  • Dim
  • Public
  • Private

薄暗い

プロシージャレベルで「Dim」キーワードを使用して宣言された変数は、同じプロシージャ内でのみ使用できます。スクリプトレベルで「Dim」キーワードを使用して宣言された変数は、同じスクリプト内のすべてのプロシージャで使用できます。

Example −以下の例では、Var1とVar2の値はスクリプトレベルで宣言され、Var3はプロシージャレベルで宣言されています。

Note−この章の範囲は、変数を理解することです。関数については、次の章で詳しく説明します。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim Var1
         Dim Var2
         
         Call add()
         Function add()
            Var1 = 10
            Var2 = 15
            Dim Var3
            Var3 = Var1 + Var2
            Msgbox Var3 'Displays 25, the sum of two values.
         End Function

         Msgbox Var1   ' Displays 10 as Var1 is declared at Script level
         Msgbox Var2   ' Displays 15 as Var2 is declared at Script level
         Msgbox Var3   ' Var3 has No Scope outside the procedure. Prints Empty
      </script>
   </body>
</html>

公衆

「Public」キーワードを使用して宣言された変数は、関連するすべてのスクリプトのすべてのプロシージャで使用できます。タイプ「public」の変数を宣言する場合、Dimキーワードは「Public」に置き換えられます。

Example −次の例では、Var1とVar2はスクリプトレベルで使用できますが、Var3はパブリックとして宣言されているため、関連するスクリプトとプロシージャ全体で使用できます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim Var1
         Dim Var2
         Public Var3

         Call add()

         Function add()
            Var1 = 10
            Var2 = 15
            Var3 = Var1+Var2
            Msgbox Var3 'Displays 25, the sum of two values.
         End Function

         Msgbox Var1   ' Displays 10 as Var1 is declared at Script level
         Msgbox Var2   ' Displays 15 as Var2 is declared at Script level
         Msgbox Var3   ' Displays 25 as Var3 is declared as Public 

      </script>
   </body>
</html>

民間

「プライベート」として宣言された変数は、それらが宣言されたスクリプト内でのみスコープを持ちます。タイプ「Private」の変数を宣言する場合、Dimキーワードは「Private」に置き換えられます。

Example−次の例では、Var1とVar2はスクリプトレベルで使用できます。Var3はプライベートとして宣言されており、この特定のスクリプトでのみ使用できます。「プライベート」変数の使用は、クラス内でより顕著になります。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim Var1
         Dim Var2
         Private Var3

         Call add()
         Function add()
            Var1 = 10
            Var2 = 15
            Var3 = Var1+Var2
            Msgbox Var3 'Displays the sum of two values.
         End Function

         Msgbox Var1   ' Displays 10 as Var1 is declared at Script level
         Msgbox Var2   ' Displays 15 as Var2 is declared at Script level
         Msgbox Var3   ' Displays 25 but Var3 is available only for this script.
      </script>
   </body>
</html>

定数は、スクリプトの実行中に変更できない値を保持するために使用される名前付きメモリの場所です。ユーザーが定数値を変更しようとすると、スクリプトの実行でエラーが発生します。定数は、変数が宣言されるのと同じ方法で宣言されます。

定数の宣言

構文

[Public | Private] Const Constant_Name = Value

定数のタイプは、パブリックまたはプライベートにすることができます。パブリックまたはプライベートの使用はオプションです。パブリック定数はすべてのスクリプトとプロシージャで使用でき、プライベート定数はプロシージャまたはクラス内で使用できます。宣言された定数には、数値、文字列、日付などの任意の値を割り当てることができます。

例1

この例では、piの値は3.4であり、メッセージボックスに円の面積が表示されます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim intRadius
         intRadius = 20
         const pi = 3.14
         Area = pi*intRadius*intRadius
         Msgbox Area

      </script>
   </body>
</html>

例2

次の例は、文字列と日付の値を定数に割り当てる方法を示しています。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Const myString = "VBScript"
         Const myDate = #01/01/2050#
         Msgbox myString
         Msgbox myDate

      </script>
   </body>
</html>

例3

以下の例では、ユーザーは定数値を変更しようとします。したがって、それは最終的にExecution Error.

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim intRadius
         intRadius = 20
         const pi = 3.14
         pi = pi*pi	'pi VALUE CANNOT BE CHANGED.THROWS ERROR'
         Area = pi*intRadius*intRadius
         Msgbox Area
         
      </script>
   </body>
</html>

演算子とは何ですか?

4 +5が9に等しいという式を考えてみましょう。ここでは、4と5はoperands +はと呼ばれます operator。VBScript言語は、次のタイプの演算子をサポートします-

  • 算術演算子
  • 比較演算子
  • 論理(または関係)演算子
  • 連結演算子

算術演算子

VBScriptは、次の算術演算子をサポートしています-

変数Aが5を保持し、変数Bが10を保持すると仮定すると、-

例を表示

オペレーター 説明
+ 2つのオペランドを追加します A + Bは15を与えます
- 最初のオペランドから2番目のオペランドを減算します A-Bは-5を与えます
* 両方のオペランドを乗算します A * Bは50を与えます
/ 分子を分子で割る B / Aは2を与えます
モジュラス演算子と整数除算後の余り B MODAは0を与えます
^ べき乗演算子 B ^ Aは100000を与えます

これらの演算子をよりよく理解するために、自分で試してみることができます。

比較演算子

VBScript言語でサポートされている次の比較演算子があります-

変数Aが10を保持し、変数Bが20を保持すると仮定すると、-

例を表示

オペレーター 説明
= 2つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が真になります。 (A == B)はFalseです。
<> 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 (A <> B)は真です。
>> 左のオペランドの値が右のオペランドの値より大きいかどうかを確認します。大きい場合は、条件が真になります。 (A> B)はFalseです。
< 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認します。小さい場合は、条件が真になります。 (A <B)は真です。
> = 左のオペランドの値が右のオペランドの値以上であるかどうかをチェックします。はいの場合、条件は真になります。 (A> = B)はFalseです。
<= 左のオペランドの値が右のオペランドの値以下であるかどうかをチェックします。はいの場合、条件は真になります。 (A <= B)は真です。

これらの演算子をよりよく理解するために、自分で試してみることができます。

論理演算子

VBScript言語でサポートされている次の論理演算子があります-

変数Aが10を保持し、変数Bが0を保持すると仮定すると、-

例を表示

オペレーター 説明
そして 論理AND演算子と呼ばれます。両方の条件が真の場合、式は真になります。 a <> 0 AND b <> 0はFalseです。
または 論理OR演算子と呼ばれます。2つの条件のいずれかがTrueの場合、条件はTrueになります。 a <> 0またはb <> 0が真です。
ない 論理NOT演算子と呼ばれます。オペランドの論理状態を逆にします。条件がTrueの場合、LogicalNOT演算子はそれをFalseにします。 NOT(a <> 0 OR b <> 0)はfalseです。
XOR 論理的除外と呼ばれます。これは、NOT演算子とOR演算子の組み合わせです。式の1つだけがTrueと評価された場合、結果はTrueになります。 (a <> 0 XOR b <> 0)は真です。

これらの演算子をよりよく理解するために、自分で試してみることができます。

連結演算子

VBScript言語でサポートされている次の連結演算子があります-

変数Aが5を保持し、変数Bが10を保持すると仮定すると、-

例を表示

オペレーター 説明
+ 変数値は数値であるため、2つの値を追加します A + Bは15を与えます
2つの値を連結します A&Bは510を与えます

変数A = "Microsoft"および変数B = "VBScript"と仮定すると、-

オペレーター 説明
+ 2つの値を連結します A + BはMicrosoftVBScriptを提供します
2つの値を連結します A&BはMicrosoftVBScriptを提供します

Note−数値と文字列には連結演算子を使用できます。変数が数値または文字列値を保持するかどうかは、コンテキストによって異なります。

これらの演算子をよりよく理解するために、自分で試してみることができます。

意思決定により、プログラマーはスクリプトまたはそのセクションの1つの実行フローを制御できます。実行は、1つ以上の条件ステートメントによって制御されます。

以下は、ほとんどのプログラミング言語に見られる典型的な意思決定構造の一般的な形式です。

VBScriptは、次のタイプの意思決定ステートメントを提供します。

ステートメント 説明
ifステートメント アン if ステートメントは、ブール式とそれに続く1つ以上のステートメントで構成されます。
if..elseステートメント アン if elseステートメントは、ブール式とそれに続く1つ以上のステートメントで構成されます。条件がTrueの場合、Ifステートメントが実行されます。条件が偽の場合、Else スクリプトの一部が実行されます
if ... elseif..elseステートメント アン if ステートメントの後に1つ以上が続く ElseIf ブール式で構成され、その後にオプションのelseステートメントが続くステートメント。すべての条件がfalseになったときに実行されます。
ネストされたifステートメント アン if または elseif 別の内部のステートメント if または elseif ステートメント。
switchステートメント A switch ステートメントを使用すると、値のリストに対して変数が等しいかどうかをテストできます。

コードのブロックを数回実行する必要がある場合があります。一般に、ステートメントは順番に実行されます。関数の最初のステートメントが最初に実行され、次に2番目のステートメントが実行されます。

プログラミング言語は、より複雑な実行パスを可能にするさまざまな制御構造を提供します。ループステートメントを使用すると、ステートメントまたはステートメントのグループを複数回実行できます。以下は、VBScriptのループステートメントの一般的なfromです。

VBScriptは、ループ要件を処理するために次のタイプのループを提供します。詳細を確認するには、次のリンクをクリックしてください。

ループタイプ 説明
forループ 一連のステートメントを複数回実行し、ループ変数を管理するコードを省略します。
for ..各ループ グループ内に少なくとも1つの要素がある場合に実行され、グループ内の要素ごとに繰り返されます。
while..wendループ ループ本体を実行する前に条件をテストします。
do..whileループ do..Whileステートメントは、条件がTrueである限り実行されます。(つまり)条件がFalseになるまでループを繰り返す必要があります。
do ..ループまで do..Untilステートメントは、条件がFalseである限り実行されます。(つまり)条件がTrueになるまでループを繰り返す必要があります。

ループ制御ステートメント

ループ制御ステートメントは、実行を通常のシーケンスから変更します。実行がスコープを離れると、ループ内の残りのすべてのステートメントは実行されません。

VBScriptは、次の制御ステートメントをサポートします。詳細を確認するには、次のリンクをクリックしてください。

制御ステートメント 説明
ステートメントの終了 を終了します For loop ステートメントを実行し、ループの直後のステートメントに実行を転送します
Doステートメントの終了 を終了します Do While ステートメントを実行し、ループの直後のステートメントに実行を転送します

イベントとは何ですか?

VBScriptのHTMLとの対話は、ユーザーまたはブラウザーがページを操作するときに発生するイベントを通じて処理されます。ページが読み込まれると、それはイベントです。ユーザーがボタンをクリックすると、そのクリックもイベントになります。イベントの他の例には、任意のキーを押す、ウィンドウを閉じる、ウィンドウのサイズを変更するなどがあります。開発者はこれらのイベントを使用して、VBScriptでコード化された応答を実行できます。これにより、ボタンでウィンドウが閉じ、メッセージがユーザーに表示され、データが検証されます。発生すると考えられる他のタイプの応答。

イベントはドキュメントオブジェクトモデル(DOM)の一部であり、すべてのHTML要素には特定のイベントセットがあり、VBScriptコードをトリガーできます。HTMLイベントリファレンスをよりよく理解するために、この小さなチュートリアルを実行してください。ここでは、EventとVBScriptの関係を理解するためのいくつかの例を示します。

onclickイベントタイプ

これは最も頻繁に使用されるイベントタイプであり、ユーザーがマウスの左ボタンをクリックしたときに発生します。このイベントタイプに対して、検証、警告などを行うことができます。

<html>
   <head>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello() 
            msgbox "Hello World"
         End Function
      </script>
   </head>
   
   <body>
      <input type = "button" onclick = "sayHello()" value = "Say Hello"/>
   </body>
</html>

次の結果が生成されます。[Hello]ボタンをクリックすると、onclickイベントが発生し、sayHello()関数がトリガーされます。

onsubmitイベントタイプ

もう1つの最も重要なイベントタイプはonsubmitです。このイベントは、フォームを送信しようとしたときに発生します。したがって、このイベントタイプに対してフォーム検証を行うことができます。[送信]ボタンをクリックしてフォームを送信すると、メッセージボックスが表示されます。

[送信]ボタンをクリックしてフォームを送信すると、メッセージボックスが表示されます。

<html>
   <head> </head>
   <body>
      <script language = "VBScript">       
         Function fnSubmit()
            Msgbox("Hello Tutorialspoint.Com")
         End Function       
      </script>
      
      <form action = "/cgi-bin/test.cgi" method = "post" name = "form1" onSubmit = "fnSubmit()">
         <input name = "txt1" type = "text"><br>
         <input name = "btnButton1" type = "submit" value="Submit">
      </form>
   </body>
</html>

onmouseoverとonmouseout

これらの2つのイベントタイプは、画像やテキストを使用して優れた効果を作成するのに役立ちます。onmouseoverイベントは、任意の要素の上にマウスを持ったときに発生するとれるonmouseoutあなたがその要素からマウスを取り出したときに発生します。

<html>
   <head> </head>
   <body>
      <script language = "VBScript">       
         Function AlertMsg
            Msgbox("ALERT !")
         End Function
          
         Function onmourse_over()
            Msgbox("Onmouse Over")
         End Function

         Sub txt2_OnMouseOut()
            Msgbox("Onmouse Out !!!")
         End Sub
          
         Sub btnButton_OnMouseOut()
            Msgbox("onmouse out on Button !")
         End Sub
      </script>
      
      <form action = "page.cgi" method = "post" name = "form1">
         <input name = "txt1" type = "text" OnMouseOut = "AlertMsg()"><br>
         <input name = "txt2" type = "text" OnMouseOver = "onmourse_over()">
         <br><input name = "btnButton" type = "button" value = "Submit">
      </form>
   </body>
</html>

テキストボックスの上にマウスを置いたとき、およびテキストボックスとボタンからフォーカスを離したときにも結果が生成されます。

HTML4標準イベント

参考までに、標準のHTML4イベントをここに示します。ここで、scriptは、そのイベントに対して実行されるVBScript関数を示します。

イベント 説明
onchange 脚本 要素が変更されるとスクリプトが実行されます
onsubmit 脚本 フォームが送信されるとスクリプトが実行されます
オンリセット 脚本 フォームがリセットされるとスクリプトが実行されます
onblur 脚本 要素がフォーカスを失うとスクリプトが実行されます
onfocus 脚本 要素がフォーカスを取得するとスクリプトが実行されます
オンキーダウン 脚本 キーが押されるとスクリプトが実行されます
onkeypress 脚本 キーを押して放すとスクリプトが実行されます
onkeyup 脚本 キーを離すとスクリプトが実行されます
onclick 脚本 マウスをクリックするとスクリプトが実行されます
ondblclick 脚本 マウスをダブルクリックするとスクリプトが実行されます
onmousedown 脚本 マウスボタンを押すとスクリプトが実行されます
onmousemove 脚本 マウスポインタが移動するとスクリプトが実行されます
onmouseout 脚本 マウスポインタが要素の外に移動すると、スクリプトが実行されます
onmouseover 脚本 マウスポインタが要素上を移動するとスクリプトが実行されます
onmouseup 脚本 マウスボタンを離すとスクリプトが実行されます

クッキーとは何ですか?

WebブラウザとサーバーはHTTPプロトコルを使用して通信し、HTTPはステートレスプロトコルです。ただし、商用Webサイトの場合、異なるページ間でセッション情報を維持する必要があります。たとえば、1人のユーザー登録は、多くのページを完了した後に終了します。しかし、すべてのWebページにわたってユーザーのセッション情報を維持する方法。多くの場合、Cookieを使用することは、訪問者のエクスペリエンスやサイトの統計を改善するために必要な設定、購入、手数料、およびその他の情報を記憶および追跡するための最も効率的な方法です。

使い方?

サーバーは、Cookieの形式で訪問者のブラウザにデータを送信します。ブラウザはCookieを受け入れる場合があります。含まれている場合は、訪問者のハードドライブにプレーンテキストレコードとして保存されます。これで、訪問者がサイトの別のページにアクセスすると、ブラウザは同じCookieをサーバーに送信して取得します。取得されると、サーバーは以前に保存されたものを認識/記憶します。Cookieは、5つの可変長フィールドのプレーンテキストデータレコードです-

  • Expires−Cookieの有効期限が切れる日付。これが空白の場合、訪問者がブラウザを終了するとCookieは期限切れになります。

  • Domain −サイトのドメイン名。

  • Path−Cookieを設定したディレクトリまたはWebページへのパス。任意のディレクトリまたはページからCookieを取得する場合は、これを空白にすることができます。

  • Secure−このフィールドに「セキュア」という単語が含まれている場合、Cookieはセキュアサーバーでのみ取得できます。このフィールドが空白の場合、そのような制限はありません。

  • Name=Value − Cookieは、キーと値のペアの形式で設定および取得されます。

Cookieは元々CGIプログラミング用に設計されており、CookieのデータはWebブラウザとWebサーバー間で自動的に送信されるため、サーバー上のCGIスクリプトはクライアントに保存されているCookie値を読み書きできます。

VBScriptは、Documentオブジェクトのcookieプロパティを使用してcookieを操作することもできます。VBScriptは、現在のWebページに適用される1つまたは複数のCookieを読み取り、作成、変更、および削除できます。

クッキーの保存

Cookieを作成する最も簡単な方法は、次のような文字列値をdocument.cookieオブジェクトに割り当てることです。

構文

document.cookie = "key1 = value1;key2 = value2;expires = date"

ここでexpires属性はオプションです。この属性に有効な日付または時刻を指定すると、Cookieは指定された日付または時刻に期限切れになり、それ以降はCookieの値にアクセスできなくなります。

以下は、入力Cookieに顧客名を設定する例です。

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie
            If document.myform.customer.value = "" Then
               msgbox "Enter some value!"
            Else
               cookievalue = (document.myform.customer.value)
               document.cookie = "name = " + cookievalue
               msgbox "Setting Cookies : " & "name = " & cookievalue
            End If
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

次のような結果になります。次に、テキストボックスに何かを入力し、[Cookieの設定]ボタンを押してCookieを設定します。

これで、システムにnameというCookieが作成されました。カンマで区切られた複数のキー=値のペアを使用して、複数のCookieを設定できます。次のセクションで、このCookieの読み方を学びます。

クッキーを読む

document.cookieオブジェクトの値はcookieであるため、cookieの読み取りは書き込みと同じくらい簡単です。したがって、Cookieにアクセスするときはいつでもこの文字列を使用できます。document.cookieの文字列は、リスト保持します名前=値のセミコロンで区切らペアの名前がされて名前のクッキーと値のは、その文字列値です。文字列のsplit()関数を使用して、次のように文字列をキーと値に分割できます。

以下は、前のセクションで設定されたCookieを取得する例です-

<html>
   <head>
      <script type = "text/vbscript">
         Function ReadCookie
            allcookies = document.cookie
            msgbox "All Cookies : " + allcookies
            cookiearray = split(allcookies,";")
            
            For i = 0 to ubound(cookiearray)
               Name  = Split(cookiearray(i),"=")
               Msgbox "Key is : " + Name(0) + " and Value is : " + Name(1)
            Next
         End Function
      </script>
   </head>
   
   <body>
      <form name = "myform" action = "">
         <input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
      </form>
   </body>
</html>

Note−ここで、UBound配列クラスのメソッドであり、配列の長さを返します。アレイについては別の章で説明します。その時まで、消化してみてください。

次のような結果になります。次に、[Cookieを取得]ボタンを押して、前のセクションで設定したCookieを表示します。

Note−マシンにすでに他のCookieが設定されている可能性があります。したがって、上記のコードは、マシンに設定されているすべてのCookieを表示します。

クッキーの有効期限の設定

有効期限を設定し、Cookie内に有効期限を保存することにより、現在のブラウザセッションを超えてCookieの寿命を延ばすことができます。これは、expires属性を日付と時刻に設定することで実行できます。

次の例は、1か月後にCookieの有効期限を設定する方法を示しています-

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            y = dateadd("m",1,now())  ' Making it to expire next 
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & y
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

クッキーの削除

場合によっては、Cookieを削除して、その後Cookieを読み取ろうとしても何も返さないようにする必要があります。これを行うには、有効期限を過去の時間に設定する必要があります。

次の例は、Cookieの有効期限を1か月前に設定してCookieを削除する方法を示しています。

<html>
   <head>
      <script type = "text/vbscript">
         Function WriteCookie()
            x = now()
            x = now()
            a = Month(x)-1
            b = day(x)
            c = year(x)
            d = DateSerial(c,a,b)
            e = hour(x) 
            
            msgbox e
            f = minute(x)
            
            msgbox f
            d = cdate(d & " " & e & ":" & f)
            
            msgbox d
            cookievalue = document.myform.customer.value
            document.cookie = "name = "  & cookievalue
            document.cookie = "expires = " & d
            msgbox("Setting Cookies : " & "name=" & cookievalue )
         End Function
      </script>
   </head>
   <body>
      <form name = "myform" action = "">
         Enter name: <input type = "text" name = "customer"/>
         <input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
      </form>
   </body>
</html>

数値関数は、開発者が効率的な方法で数値を処理するのに役立ち、サブタイプを変換するのにも役立ちます。また、VBScriptに関連付けられた組み込みの数学関数を利用するのにも役立ちます。

数値変換関数

数値関数は、特定の数値をあるデータサブタイプから別のデータサブタイプに変換するのに役立ちます。

例を表示

シニア番号 機能と説明
1

CDbl

指定された数のバリアントサブタイプをdoubleに変換する関数

2

CInt

指定された数のバリアントサブタイプを整数に変換する関数

3

CLng

指定された数のバリアントサブタイプをLongに変換する関数

4

CSng

指定された数のバリアントサブタイプを単一に変換する関数

5

Hex

指定された数のバリアントサブタイプを16進数に変換する関数

数値フォーマット関数

数値フォーマット機能は、開発者が指定された数値を希望のフォーマットで表現するのに役立ちます。

例を表示

シニア番号 機能と説明
1

FormatNumber

数値としてフォーマットされた式を返す関数。

2

FormatPercent

パーセンテージでフォーマットされた式を返す関数。

数学関数

数学関数は、特定の入力数の数学関数と三角関数を評価するのに役立ちます。

例を表示

シニア番号 機能と説明
1

Int

指定された数値の整数部分を返す関数

2

Fix

指定された数値の整数部分を返す関数

3

Log

指定された数値の自然対数を返す関数。負の数は許可されていません

4

Oct

指定されたパーセンテージの8進値を返す関数

5

Hex

指定された数値の16進値を返す関数

6

Rnd

0から1までの乱数を返す関数

7

Sgn

指定された数値の符号に対応する数値を返す関数。

8

Sqr

指定された数値の平方根を返す関数。負の数は許可されていません

9

Abs

指定された数値の絶対値を返す関数

10

Exp

指定された数に上げられたeの値を返す関数。

11

Sin

指定された数値の正弦値を返す関数

12

Cos

指定された数値のコサイン値を返す関数

13

Tan

指定された数値のtan値を返す関数

文字列は文字のシーケンスであり、アルファベット、数字、特殊文字、またはそれらすべてで構成できます。変数が二重引用符 ""で囲まれている場合、その変数は文字列であると言われます。

構文

variablename = "string"

str1 = "string"   ' Only Alphabets
str2 = "132.45"   ' Only Numbers
str3 = "!@#$;*"   ' Only Special Characters
Str4 = "Asc23@#"  ' Has all the above

文字列関数

事前定義されたVBScript文字列関数があり、開発者が文字列を非常に効果的に操作するのに役立ちます。以下は、VBScriptでサポートされているStringメソッドです。詳細については、それぞれの方法をクリックしてください。

関数名 説明
InStr 指定された部分文字列の最初の出現を返します。検索は左から右に行われます。
InstrRev 指定された部分文字列の最初の出現を返します。検索は右から左に行われます。
Lcase 指定された文字列の小文字を返します。
Ucase 指定された文字列の大文字を返します。
文字列の左側から特定の文字数を返します。
正しい 文字列の右側から特定の文字数を返します。
ミッド 指定されたパラメータに基づいて、文字列から特定の文字数を返します。
Ltrim 指定された文字列の左側のスペースを削除した後、文字列を返します。
Rtrim 指定された文字列の右側のスペースを削除した後、文字列を返します。
トリム 先頭と末尾の両方の空白スペースを削除した後、文字列値を返します。
レン 指定された文字列の長さを返します。
交換 文字列を別の文字列に置き換えた後、文字列を返します。
スペース 指定された数のスペースで文字列を埋めます。
StrComp 指定された2つの文字列を比較した後、整数値を返します。
ストリング 指定された文字を指定された回数だけ文字列を返します。
StrReverse 指定された文字列の文字のシーケンスを逆にした後、文字列を返します。

アレイとは何ですか?

変数が値を格納するためのコンテナーであることはよく知っています。開発者は、一度に1つの変数に複数の値を保持できる場合があります。一連の値が単一の変数に格納されている場合、それはarray variable

配列宣言

配列は、配列変数の宣言が括弧を使用することを除いて、変数が宣言されたのと同じ方法で宣言されます。次の例では、配列のサイズが括弧内に示されています。

'Method 1 : Using Dim
Dim arr1() 'Without Size

'Method 2 : Mentioning the Size
Dim arr2(5) 'Declared with size of 5

'Method 3 : using 'Array' Parameter
Dim arr3
arr3 = Array("apple","Orange","Grapes")
  • 配列サイズは5と示されていますが、配列インデックスはゼロから始まるため、6つの値を保持できます。

  • 配列インデックスを負にすることはできません。

  • VBScript配列は、任意のタイプの変数を配列に格納できます。したがって、配列は整数、文字列、または文字を単一の配列変数に格納できます。

配列への値の割り当て

値は、割り当てられる値のそれぞれに対して配列インデックス値を指定することによって配列に割り当てられます。文字列にすることができます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(5)
         arr(0) = "1"            'Number as String
         arr(1) = "VBScript"     'String
         arr(2) = 100            'Number
         arr(3) = 2.45           'Decimal Number
         arr(4) = #10/07/2013#   'Date
         arr(5) = #12.45 PM#     'Time

         document.write("Value stored in Array index 0 : " & arr(0) & "<br />")
         document.write("Value stored in Array index 1 : " & arr(1) & "<br />")
         document.write("Value stored in Array index 2 : " & arr(2) & "<br />")
         document.write("Value stored in Array index 3 : " & arr(3) & "<br />")
         document.write("Value stored in Array index 4 : " & arr(4) & "<br />")
         document.write("Value stored in Array index 5 : " & arr(5) & "<br />")

      </script>
   </body>
</html>

上記のコードを.HTMLとして保存し、Internet Explorerで実行すると、次の結果が生成されます。

Value stored in Array index 0 : 1
Value stored in Array index 1 : VBScript
Value stored in Array index 2 : 100
Value stored in Array index 3 : 2.45
Value stored in Array index 4 : 7/10/2013
Value stored in Array index 5 : 12:45:00 PM

多次元配列

配列は単一の次元に限定されるのではなく、最大60の次元を持つことができます。2次元配列は、最も一般的に使用される配列です。

次の例では、多次元配列が3行4列で宣言されています。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim arr(2,3)	' Which has 3 rows and 4 columns
         arr(0,0) = "Apple" 
         arr(0,1) = "Orange"
         arr(0,2) = "Grapes"           
         arr(0,3) = "pineapple" 
         
         arr(1,0) = "cucumber"           
         arr(1,1) = "beans"           
         arr(1,2) = "carrot"           
         arr(1,3) = "tomato"    
         
         arr(2,0) = "potato"             
         arr(2,1) = "sandwitch"            
         arr(2,2) = "coffee"             
         arr(2,3) = "nuts"            
                  
         document.write("Value in Array index 0,1 : " &  arr(0,1) & "<br />")
         document.write("Value in Array index 2,2 : " &  arr(2,2) & "<br />")

      </script>
   </body>
</html>

上記のコードを.HTMLとして保存し、Internet Explorerで実行すると、次の結果が生成されます。

Value stored in Array index : 0 , 1 : Orange
Value stored in Array index : 2 , 2 : coffee

償還声明

ReDimステートメントは、動的配列変数を宣言し、ストレージスペースを割り当てまたは再割り当てするために使用されます。

ReDim [Preserve] varname(subscripts) [, varname(subscripts)]
  • Preserve −最後の次元のサイズを変更するときに、既存の配列のデータを保持するために使用されるオプションのパラメーター。

  • varname −変数の名前を示す必須パラメーター。標準の変数命名規則に従う必要があります。

  • subscripts −配列のサイズを示す必須パラメーター。

以下の例では、配列が再定義され、配列の既存のサイズが変更されたときに値が保持されています。

Note −元の配列よりも小さい配列のサイズを変更すると、削除された要素のデータは失われます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim a()
         i = 0
         redim a(5)
         a(0) = "XYZ"
         a(1) = 41.25
         a(2) = 22
           
         REDIM PRESERVE a(7)
         For i = 3 to 7
         a(i) = i
         Next
           
         'to Fetch the output
         For i = 0 to ubound(a)
            Msgbox a(i)
         Next
      </script>
   </body>
</html>

上記のスクリプトをHTMLとして保存し、Internet Explorerで実行すると、次の結果が得られます。

XYZ
41.25
22
3
4
5
6
7

配列メソッド

VBScriptには、開発者が配列を効果的に処理するのに役立つさまざまな組み込み関数があります。配列と組み合わせて使用​​されるすべてのメソッドを以下に示します。詳細については、メソッド名をクリックしてください。

関数 説明
LBound 指定された配列の最小の添え字に対応する整数を返す関数。
UBound 指定された配列の最大の添え字に対応する整数を返す関数。
スプリット 指定された数の値を含む配列を返す関数。区切り文字に基づいて分割されます。
参加する 配列内の指定された数の部分文字列を含む文字列を返す関数。これは、分割メソッドの正反対の関数です。
フィルタ 特定のフィルター基準に基づいて文字列配列のサブセットを含むゼロベースの配列を返す関数。
IsArray 入力変数が配列であるかどうかを示すブール値を返す関数。
消去 配列変数に割り当てられたメモリを回復する関数。

VBScriptの日付と時刻の関数は、開発者が日付と時刻をある形式から別の形式に変換したり、特定の条件に適した形式で日付または時刻の値を表現したりするのに役立ちます。

日付関数

関数 説明
日付 現在のシステム日付を返す関数
CDate 指定された入力を日付に変換する関数
DateAdd 指定された時間間隔が追加された日付を返す関数。
DateDiff 2つの期間の差を返す関数
DatePart 指定された入力日付値の指定された部分を返す関数。
DateSerial 指定された年、月、日付の有効な日付を返す関数。
FormatDateTime 提供されたパラメーターに基づいて日付をフォーマットする関数
IsDate 指定されたパラメーターが日付であるかどうかに関係なくブール値を返す関数。
指定された日付の日を表す1から31までの整数を返す関数。
指定された日付の月を表す1から12までの整数を返す関数。
指定された日付の年を表す整数を返す関数。
MonthName 指定された日付の特定の月の名前を返す関数。
平日 指定された日の曜日を表す整数(1から7)を返す関数。
WeekDayName 指定された日の平日の名前を返す関数。

時間関数

関数 説明
現在のシステムの日付と時刻を返す関数
時間 指定された時間の時間部分を表す0から23までの整数を返す関数。
指定された時間の分部分を表す0から59までの整数を返す関数。
2番目 指定された時間の秒の部分を表す0から59までの整数を返す関数。
時間 現在のシステム時刻を返す関数
タイマー 午前12:00からの秒数とミリ秒数を返す関数。
TimeSerial 時間、分、秒の特定の入力の時間を返す関数。
TimeValue 入力文字列を時間形式に変換する関数

関数とは何ですか?

関数は、プログラムのどこからでも呼び出すことができる再利用可能なコードのグループです。これにより、同じコードを何度も書く必要がなくなります。これにより、プログラマーは大きなプログラムをいくつかの小さくて管理しやすい関数に分割することができます。組み込み関数とは別に、VBScriptではユーザー定義関数を作成することもできます。このセクションでは、VBScriptで独自の関数を作成する方法について説明します。

関数定義

関数を使用する前に、その特定の関数を定義する必要があります。VBScriptで関数を定義する最も一般的な方法は、Functionキーワードを使用し、その後に一意の関数名を続けることです。これには、パラメーターのリストとステートメントが含まれる場合と含まれない場合があります。End Function 関数の終了を示すキーワード。

基本的な構文を以下に示します-

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function Functionname(parameter-list)
            statement 1
            statement 2
            statement 3
            .......
            statement n
         End Function

      </script>
   </body>
</html>

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

      </script>
   </body>
</html>

関数の呼び出し

スクリプトの後半で関数を呼び出すには、その関数の名前を次のように記述する必要があります。 Call キーワード。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello()
            msgbox("Hello there")
         End Function

         Call sayHello()
        
      </script>
   </body>
</html>

関数パラメーター

これまで、パラメーターのない関数を見てきましたが、関数の呼び出し中にさまざまなパラメーターを渡す機能があります。これらの渡されたパラメーターは関数内でキャプチャでき、これらのパラメーターに対して任意の操作を行うことができます。関数は、を使用して呼び出されますCall キーワード。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function sayHello(name, age)
            msgbox( name & " is " & age & " years old.")
         End Function

         Call sayHello("Tutorials point", 7)

      </script>
   </body>
</html>

関数から値を返す

VBScript関数には、オプションのreturnステートメントを含めることができます。これは、関数から値を返したい場合に必要です。たとえば、関数で2つの数値を渡すと、呼び出し元のプログラムで関数からそれらの乗算が返されることが期待できます。

NOTE −関数は、関数名自体に割り当てられた配列として、コンマで区切られた複数の値を返すことができます。

この関数は2つのパラメーターを受け取り、それらを連結して、呼び出し元のプログラムに結果を返します。VBScriptでは、値は関数名を使用して関数から返されます。2つ以上の値を返したい場合は、関数名が値の配列とともに返されます。呼び出し側プログラムでは、結果は結果変数に格納されます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function concatenate(first, last)
            Dim full
            full = first & last
            concatenate = full  'Returning the result to the function name itself
         End Function

      </script>
   </body>
</html>

これで、この関数を次のように呼び出すことができます-

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Function concatenate(first, last)
            Dim full
            full = first & last
            concatenate = full  'Returning the result to the function name itself
         End Function
         ' Here is the usage of returning value from  function. 
         dim result
            result = concatenate("Zara", "Ali")
        msgbox(result)
      </script>
   </body>
</html>

サブプロシージャ

サブプロシージャは関数に似ていますが、いくつかの違いがあります。

  • 関数が値を返す場合と返さない場合がある間、サブプロシージャは値を返しません。

  • サブプロシージャcallキーワードなしで呼び出すことができます。

  • サブプロシージャは常に次のように囲まれています Sub そして End Sub ステートメント。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub

      </script>
   </body>
</html>

呼び出し手順

スクリプトの後半のどこかでプロシージャを呼び出すには、そのプロシージャの名前を、 Call キーワード。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Sub sayHello()
            msgbox("Hello there")
         End Sub
         sayHello()

      </script>
   </body>
</html>

関数の高度な概念

VBScript関数について学ぶことはたくさんあります。パラメータを値または参照で渡すことができます。詳細については、それぞれをクリックしてください。

  • ByVal-パラメータを値で渡します

  • ByRef-参照によってパラメータを渡します

ダイアログボックスとは何ですか?

VBScriptを使用すると、開発者はユーザーと効果的に対話できます。これは、ユーザーにメッセージを表示するためのメッセージボックス、またはユーザーが値を入力できる入力ボックスにすることができます。

VBScriptMsgBox関数

MsgBox関数は、メッセージボックスを表示し、ユーザーがボタンをクリックするのを待ってから、ユーザーがクリックしたボタンに基づいてアクションを実行します。

構文

MsgBox(prompt[,buttons][,title][,helpfile,context])

パラメータの説明

  • Prompt−必須パラメーター。ダイアログボックスにメッセージとして表示される文字列。プロンプトの最大長は約1024文字です。メッセージが1行を超えている場合は、各行の間に改行文字(Chr(13))または改行文字(Chr(10))を使用して行を区切ることができます。

  • buttons−オプションのパラメータ。表示するボタンのタイプ、使用するアイコンスタイル、デフォルトボタンのID、およびメッセージボックスのモダリティを指定する数式。空白のままにすると、ボタンのデフォルト値は0になります。

  • Title−オプションのパラメータ。ダイアログボックスのタイトルバーに表示される文字列式。タイトルを空白のままにすると、アプリケーション名がタイトルバーに表示されます。

  • helpfile−オプションのパラメータ。ダイアログボックスの状況依存ヘルプを提供するために使用するヘルプファイルを識別する文字列式。

  • context−オプションのパラメータ。ヘルプ作成者によって適切なヘルプトピックに割り当てられたヘルプコンテキスト番号を識別する数式。コンテキストを指定する場合は、ヘルプファイルも指定する必要があります。

ザ・ Buttons パラメータは次の値のいずれかを取ることができます-

  • 0 vbOKOnlyOKボタンのみを表示します。

  • 1 vbOKCancel [OK]ボタンと[キャンセル]ボタンを表示します。

  • 2 vbAbortRetryIgnore [中止]、[再試行]、および[無視]ボタンを表示します。

  • 3 vbYesNoCancel [はい]、[いいえ]、および[キャンセル]ボタンを表示します。

  • 4vbYesNo [はい]ボタンと[いいえ]ボタンを表示します。

  • 5vbRetryCancel再試行ボタンとキャンセルボタンを表示します。

  • 16vbCriticalクリティカルメッセージアイコンを表示します。

  • 32vbQuestion警告クエリアイコンを表示します。

  • 48vbExclamation警告メッセージアイコンを表示します。

  • 64vbInformation情報メッセージアイコンを表示します。

  • 0vbDefaultButton1最初のボタンがデフォルトです。

  • 256 vbDefaultButton22番目のボタンがデフォルトです。

  • 512 vbDefaultButton33番目のボタンがデフォルトです。

  • 768 vbDefaultButton44番目のボタンがデフォルトです。

  • 0vbApplicationModalアプリケーションモーダル。現在のアプリケーションは、ユーザーがメッセージボックスに応答するまで機能しません。

  • 4096vbSystemModalシステムモーダル。ユーザーがメッセージボックスに応答するまで、すべてのアプリケーションは機能しません。

上記の値は、論理的に4つのグループに分けられます。最初のグループ(0〜5)は、メッセージボックスに表示されるボタンを示します。2番目のグループ(16、32、48、64)は表示されるアイコンのスタイルを示し、3番目のグループ(0、256、512、768)はどのボタンをデフォルトにする必要があるかを示し、4番目のグループ(0、4096)は)メッセージボックスのモダリティを決定します。

戻り値

MsgBox関数は、次のいずれかの値を返すことができます-

  • 1-vbOK- [OK]をクリックしました

  • 2-vbCancel-キャンセルがクリックされました

  • 3-vbAbort-中止がクリックされました

  • 4-vbRetry-再試行がクリックされました

  • 5-vbIgnore-無視がクリックされました

  • 6-vbYes-はいがクリックされました

  • 7-vbNo-クリックされませんでした

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         'Message Box with just prompt message
         MsgBox("Welcome")    
           
         'Message Box with title, yes no and cancel Butttons 
         a = MsgBox("Do you like blue color?",3,"Choose options")
         ' Assume that you press No Button	
         document.write("The Value of a is " & a)
         
      </script>
   </body>
</html>

上記のスクリプトを実行すると、メッセージボックスが表示され、[いいえ]ボタンを押すと、aの値は7になります。

The Value of a is 7

VBScriptInputBox関数

InputBox関数は、ユーザーがユーザーから値を取得するのに役立ちます。値を入力した後、ユーザーが[OK]ボタンをクリックするか、キーボードのEnterキーを押すと、InputBox関数はテキストボックスにテキストを返します。ユーザーが[キャンセル]ボタンをクリックすると、関数は空の文字列( "")を返します。

構文

InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])

パラメータの説明

  • Prompt−必須パラメーター。ダイアログボックスにメッセージとして表示される文字列。プロンプトの最大長は約1024文字です。メッセージが1行を超えている場合は、各行の間に改行文字(Chr(13))または改行文字(Chr(10))を使用して行を区切ることができます。

  • Title−オプションのパラメータ。ダイアログボックスのタイトルバーに表示される文字列式。タイトルを空白のままにすると、アプリケーション名がタイトルバーに表示されます。

  • Default−オプションのパラメータ。ユーザーが表示したいテキストボックスのデフォルトテキスト。

  • XPos−オプションのパラメータ。画面の左側から水平方向のプロンプト距離を表すX軸の位置。空白のままにすると、入力ボックスは水平方向の中央に配置されます。

  • YPos−オプションのパラメータ。画面の左側からのプロンプト距離を垂直に表すY軸の位置。空白のままにすると、入力ボックスは垂直方向の中央に配置されます。

  • helpfile−オプションのパラメータ。ダイアログボックスの状況依存ヘルプを提供するために使用するヘルプファイルを識別する文字列式。

  • context−オプションのパラメータ。ヘルプ作成者によって適切なヘルプトピックに割り当てられたヘルプコンテキスト番号を識別する数式。コンテキストを指定する場合は、ヘルプファイルも指定する必要があります。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         ' Input Box with only Prompt
         InputBox("Enter a number")    
        
         ' Input Box with a Title
         a = InputBox("Enter a Number","Enter Value")
         msgbox a
        
         ' Input Box with a Prompt,Title and Default value
         a = InputBox("Enter a Number","Enter Value",123)
         msgbox a
        
         ' Input Box with a Prompt,Title,Default and XPos
         a = InputBox("Enter your name","Enter Value",123,700)
         msgbox a
        
         ' Input Box with a Prompt,Title and Default and YPos
         a = InputBox("Enter your name","Enter Value",123,,500)
         msgbox a
         
      </script>
   </body>
</html>

上記のスクリプトを実行すると、入力ボックスが表示され、ユーザーが入力した値が表示されます。

オブジェクトとは

VBScriptランタイムオブジェクトは、さまざまなタスクを実行するのに役立ちます。このセクションは、オブジェクトをインスタンス化して操作する方法を理解するのに役立ちます。

構文

オブジェクトをシームレスに操作するには、オブジェクトを宣言し、を使用してインスタンス化する必要があります Set キーワード。

Dim objectname    'Declare the object name
Set objectname = CreateObject(object_type)

以下の例では、タイプのオブジェクトを作成しています Scripting.Dictionary

Dim obj  
Set obj = CreateObject("Scripting.Dictionary")

オブジェクトの破壊

オブジェクトを破棄することの重要性は、メモリを解放し、オブジェクト変数をリセットすることです。

構文

オブジェクトを破壊するには、を使用する必要があります Set キーワードの後に​​オブジェクト名が続き、それを指す Nothing

Set objectname = Nothing 'Destroy the object.

以下の例では、タイプのオブジェクトを作成しています Scripting.Dictionary

Dim obj  
Set obj = CreateObject("Scripting.Dictionary")
Set obj = Nothing.

オブジェクトの使用法

詳細については、指定されたオブジェクトタイプのそれぞれをクリックしてください。

オブジェクトタイプ 説明
クラス クラスはコンテナであり、それに関連付けられ、型クラスのオブジェクトを作成することによってアクセスされるメソッドと変数を保持します。
Scripting.FileSystemObject これは、ファイルシステムで作業できるオブジェクトのグループです。
Scripting.Dictionary ディクショナリオブジェクトの作成に使用されるオブジェクトのグループ。
デバッグ Microsoftスクリプトデバッガーに出力を送信できるグローバルオブジェクト。

正規表現は、パターンを形成する一連の文字であり、主に検索と置換に使用されます。パターンを作成する目的は、特定の文字列を照合することです。これにより、開発者は条件に基づいて文字を抽出し、特定の文字を置き換えることができます。

RegExpオブジェクト

RegExpオブジェクトは、開発者が文字列のパターンを一致させるのに役立ち、プロパティとメソッドは、正規表現を簡単に操作するのに役立ちます。JavaScriptのRegExpに似ています

プロパティ

  • Pattern − Patternメソッドは、正規表現を定義するために使用される文字列を表します。正規表現オブジェクトを使用する前に設定する必要があります。

  • IgnoreCase− trueまたはfalseの場合、文字列内のすべての可能な一致に対して正規表現をテストする必要があるかどうかを表すブールプロパティ。明示的に指定されていない場合、IgnoreCase値はFalseに設定されます。

  • Global−文字列内のすべての可能な一致に対して正規表現をテストする必要があるかどうかを表すブールプロパティ。明示的に指定されていない場合、グローバル値はFalseに設定されます。

メソッド

  • Test(search-string)-Testメソッドは、引数として文字列を受け取り、正規表現が文字列と正常に一致する場合はTrueを返し、それ以外の場合はFalseを返します。

  • Replace(search-string、replace-string)-Replaceメソッドは2つのパラメーターを取ります。検索が成功すると、一致するものがreplace-stringに置き換えられ、新しい文字列が返されます。一致するものがない場合は、元の検索文字列が返されます。

  • Execute(search-string)-ExecuteメソッドはReplaceと同じように機能しますが、一致が成功するたびにMatchオブジェクトを含むMatchesコレクションオブジェクトを返す点が異なります。元の文字列は変更されません。

コレクションオブジェクトに一致

Matchesコレクションオブジェクトは、Executeメソッドの結果として返されます。このコレクションオブジェクトには、0個以上のMatchオブジェクトを含めることができ、このオブジェクトのプロパティは読み取り専用です。

  • Count − Countメソッドは、コレクション内の一致オブジェクトの数を表します。

  • Item − Itemメソッドを使用すると、matchesコレクションオブジェクトからmatchオブジェクトにアクセスできます。

一致オブジェクト

Matchオブジェクトは、matchesコレクションオブジェクトに含まれています。これらのオブジェクトは、文字列の検索後に成功した一致を表します。

  • FirstIndex−一致が発生した元の文字列内の位置を表します。このインデックスはゼロベースです。つまり、文字列の最初の位置は0です。

  • Length −一致した文字列の全長を表す値。

  • Value−一致した値またはテキストを表す値。これは、Matchオブジェクトにアクセスするときのデフォルト値でもあります。

パターンパラメータのすべて

パターン構築はPERLに似ています。正規表現を使用する場合、パターンの作成は最も重要です。このセクションでは、さまざまな要因に基づいてパターンを作成する方法について説明します。

位置マッチング

位置マッチングの重要性は、正規表現を正しい場所に配置することを保証することです。

シンボル 説明
^ 文字列の先頭のみに一致します。
$ 文字列の末尾のみに一致します。
\ b 任意の単語境界に一致します
\ B 単語以外の境界に一致します

リテラルマッチング

アルファベット、数字、特殊文字、さらには10進数、16進数など、あらゆる形式の文字をリテラルとして扱うことができます。正規表現のコンテキスト内ですでに特別な意味を持つ文字はほとんどないため、エスケープシーケンスを使用してエスケープする必要があります。

シンボル 説明
英数字 アルファベット文字と数字のみに一致します。
\ n 新しい行に一致します。
\ [ 一致する[リテラルのみ
\] 一致する]リテラルのみ
\( 一致(リテラルのみ
\) 一致する)リテラルのみ
\ t 水平タブに一致
\ v 垂直タブに一致
\ | マッチ| リテラルのみ
\ { 一致する{リテラルのみ
\} }リテラルのみに一致
\\ \リテラルのみに一致
\? 一致しますか?リテラルのみ
\ * 一致*リテラルのみ
\ + 一致+リテラルのみ
\。 一致します。リテラルのみ
\ b 任意の単語境界に一致します
\ B 単語以外の境界に一致します
\ f フォームフィードと一致します
\ r キャリッジリターンに一致
\ xxx 8進数xxxのASCII文字に一致します。
\ xdd 16進数のddのASCII文字に一致します。
\ uxxxx UNICODEリテラルxxxxのASCII文字に一致します。

一致する文字クラス

文字クラスは、カスタマイズされたグループ化によって形成され、[]中括弧で囲まれたパターンです。リストに含めるべきではない文字クラスを予期している場合は、負の記号(キャップ​​^)を使用してその特定の文字クラスを無視する必要があります。

シンボル 説明
[xyz] 文字セットに含まれる文字クラスのいずれかに一致します。
[^ xyz] 文字セットに含まれていない文字クラスのいずれかに一致します。
\ n以外のすべての文字クラスに一致します
\ w 任意の単語文字クラスに一致します。[a-zA-Z_0-9]と同等
\ W 単語以外の文字クラスに一致します。[^ a-zA-Z_0-9]と同等
\ d 任意の数字クラスに一致します。[0-9]に相当します。
\ D 数字以外の文字クラスに一致します。[^ 0-9]と同等です。
\ s 任意のスペース文字クラスに一致します。[\ t \ r \ n \ v \ f]と同等
\ S 任意のスペース文字クラスに一致します。[^ \ t \ r \ n \ v \ f]と同等

繰り返しマッチング

繰り返しマッチングにより、正規表現内で複数の検索が可能になります。また、正規表現で要素が繰り返される回数も指定します。

シンボル 説明
* 指定された正規表現の0回以上の出現に一致します。{0、}と同等です。
+ 指定された正規表現の1つ以上のオカレンスに一致します。{1、}に相当します。
指定された正規表現の0回または1回の出現に一致します。{0,1}に相当します。
{バツ} 指定された正規表現のx回の出現回数に正確に一致します。
{バツ、} 指定された正規表現の少なくともx回以上の出現に一致します。
{x、y} 指定された正規表現の出現回数をxからyに一致させます。

交替とグループ化

交互とグループ化は、開発者が正規表現内の複雑な句を特に処理する際に、より複雑な正規表現を作成するのに役立ちます。これにより、優れた柔軟性と制御が可能になります。

シンボル 説明
0 句をグループ化して句を作成します。「(xy)?(z)」は「xyz」または「z」と一致します。
| 交替は、1つの正規表現句を組み合わせてから、個々の句のいずれかに一致します。「(ij)|(23)|(pq)」は「ij」または「23」または「pq」と一致します。

正規表現の作成

以下に、正規表現の作成方法を明確に説明するいくつかの例を示します。

正規表現 説明
「^ \ s * ..」および「.. \ s * $」 1行に任意の数の先頭と末尾のスペース文字を含めることができることを表します。
「((\ $ \ s?)|(#\ s?))?」 オプションの$または#記号とそれに続くオプションのスペースを表します。
"((\ d +(\。(\ d \ d)?)?))" 少なくとも1桁が存在し、その後にオプションの小数が続き、小数の後に2桁が続くことを表します。

次の例では、ユーザーが電子メールIDを入力したかどうかを確認します。この形式は、電子メールID、「@」、ドメイン名の順に一致する必要があります。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         strid = "[email protected]"
         Set re = New RegExp
         With re
            .Pattern    = "^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$"
            .IgnoreCase = False
            .Global     = False
         End With
        
         ' Test method returns TRUE if a match is found
         If re.Test( strid ) Then
            Document.write(strid & " is a valid e-mail address")
         Else
            Document.write(strid & " is NOT a valid e-mail address")
         End If
        
        Set re = Nothing
      </script>
   </body>
</html>

プログラミングのエラーには、(a)構文エラー、(b)ランタイムエラー、および(c)論理エラーの3種類があります。

構文エラー

構文エラーは、解析エラーとも呼ばれ、VBScriptの解釈時に発生します。たとえば、次の行では、閉じ括弧がないため、構文エラーが発生します-

<script type = "text/vbscript">

   dim x,y
   x = "Tutorialspoint"
   y = Ucase(x

</script>

ランタイムエラー

例外とも呼ばれるランタイムエラーは、解釈後の実行中に発生します。たとえば、次の行では構文が正しいため実行時エラーが発生しますが、実行時に存在しない関数であるfnmultiplyを呼び出そうとしています-

<script type = "text/vbscript">
   Dim x,y
   x = 10
   y = 20
   z = fnadd(x,y)
   a = fnmultiply(x,y)
   
   Function fnadd(x,y)
      fnadd = x+y
   End Function

</script>

論理エラー

論理エラーは、追跡するのが最も難しいタイプのエラーである可能性があります。これらのエラーは、構文エラーまたは実行時エラーの結果ではありません。代わりに、スクリプトを駆動するロジックに誤りがあり、期待した結果が得られない場合に発生します。プログラムにどのタイプのロジックを配置するかはビジネス要件に依存するため、これらのエラーをキャッチすることはできません。たとえば、数値をゼロで除算したり、無限ループに入るスクリプトを記述したりします。

エラーオブジェクト

Aランタイムエラーが発生した場合、エラーメッセージを表示して実行を停止するとします。開発者として、エラーをキャプチャしたい場合は、Error オブジェクトが使用されます。

以下の例では、 Err.Number エラー番号を与え、 Err.Description エラーの説明を提供します。

<script type = "text/vbscript">
  
  Err.Raise 6     ' Raise an overflow error.
  MsgBox "Error # " & CStr(Err.Number) & " " & Err.Description
  Err.Clear       ' Clear the error.

</script>

VBScriptには、開発者が効率的なスクリプトを開発するのに役立つ他の重要なステートメントがいくつかあります。次の表に、そのような重要なステートメントのセットを示します。この章では、これらの各ステートメントについて例を挙げて詳しく説明します。

カテゴリー 関数名/ステートメント名
オプション オプション明示
スクリプトエンジンID ScriptEngine
バリアント IsArray、IsEmpty、IsNull、IsNumeric、IsObject、TypeName
評価、実行
制御ステートメント で...終了で
数学関数 ランダム化

オプション明示

Option Explicit 開発者にを使用して変数を宣言するように強制します Dim コードの一部で使用される前のステートメント。

構文

Option Explicit

使用する場合 Option Explicit 変数を宣言しないと、インタープリターはスローしてエラーになります。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Option Explicit
         Dim x,y,z,a
         x = 10
         y = 20
         z = fnadd(x,y)
         a = fnmultiply(x,y)

         Function fnadd(x,y)
            fnadd = x+y
         End Function

      </script>
   </body>
</html>

ScriptEngine

ScriptEngine使用中のスクリプト言語の詳細を表します。と組み合わせて使用​​することもできますScriptEngineMajorVersion, ScriptEngineMinor Version, ScriptEngineBuildVersion これにより、vbscriptエンジンのメジャーバージョン、vbscriptエンジンのマイナーバージョン、およびvbscriptのビルドバージョンがそれぞれ提供されます。

構文

ScriptEngine

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim scriptdetails
         scriptdetails =  " Version " & ScriptEngine & " - "
         'For getting Major version, use ScriptEngineMajorVersion'
        
         scriptdetails = scriptdetails &  ScriptEngineMajorVersion & "."
        
         'For getting Minor version, use ScriptEngineMinorVersion'
         scriptdetails = scriptdetails & ScriptEngineMinorVersion & "."
        
         'For getting Build version, use ScriptEngineBuildVersion'
         scriptdetails = scriptdetails & ScriptEngineBuildVersion 
        
         Document.write scriptdetails

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Version VBScript - 5.8.16996

IsEmpty

関数IsEmptyは、式が空であるかどうかを確認するために使用されます。ブール値を返します。IsEmpty変数が初期化されていないか、明示的にEmptyに設定されている場合、Trueを返します。それ以外の場合、式はFalseを返します。

構文

IsEmpty(expression)

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, MyCheck
         MyCheck = IsEmpty(var)  
         Document.write "Line 1 : " & MyCheck & "<br />"
        
         var = Null   ' Assign Null.
         MyCheck = IsEmpty(var) 
         Document.write "Line 2 : " & MyCheck & "<br />"
         
         var = Empty   ' Assign Empty.
         MyCheck = IsEmpty(var)
         Document.write "Line 3 : " & MyCheck & "<br />"
        
      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Line 1 : True
Line 2 : False
Line 3 : True

無効である

関数IsNullは、式に有効なデータがあるかどうかを確認するために使用されます。ブール値を返します。IsNull 変数がNullの場合はTrueを返し、そうでない場合は式はFalseを返します。

構文

IsNull(expression)

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, res
         res = IsNull(var)
         document.write "Line 1 : " & res & "<br />"
         
         var = Null
         res = IsNull(var)
         document.write "Line 2 : " & res & "<br />"
         
         var = Empty
         res = IsNull(var)
         document.write "Line 3 : " & res & "<br />"

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Line 1 : False
Line 2 : True
Line 3 : False

IsObject

IsObject関数は、式に有効なオブジェクトがあるかどうかを確認するために使用されます。ブール値を返します。IsObject 式にオブジェクトサブタイプが含まれている場合はTrueを返し、含まれていない場合はFalseを返します。

構文

IsObject(expression)

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
        Dim fso,b
        b = 10
        set fso = createobject("Scripting.Filesystemobject")
        
        x = isobject(fso)
        Document.write "Line 1 : " &  x  & "<br />" 
        
        y = isobject(b)
        Document.write "Line 2 : " &  y  & "<br />" 

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Line 1 : True
Line 2 : False

IsNumeric

IsNumeric関数は、式に数値サブタイプがあるかどうかを確認するために使用されます。ブール値を返します。IsObject 式に数値サブタイプが含まれている場合はTrueを返し、含まれていない場合はFalseを返します。

構文

IsNumeric(expression)

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim var, chk
         var = 20
         chk = IsNumeric(var)
         Document.write "Line 1 : " &  chk  & "<br />" 
        
         var = "3.1415935745"   
         chk = IsNumeric(var)   
         Document.write "Line 2 : " &  chk  & "<br / >" 
        
         var = "20 Chapter 23.123 VBScript"   
         chk = IsNumeric(var)
         Document.write "Line 3 : " &  chk  & "<br / >" 

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Line 1 : True
Line 2 : True
Line 3 : False

TypeName

TypeName関数は、変数のバリアントサブタイプ情報を返すために使用されます。

構文

TypeName(varname)

Typename関数は、次の値のいずれかを返すことができます。

  • バイト-バイト値

  • 整数-整数値

  • Long −長整数値

  • 単精度-単精度浮動小数点値

  • Double −倍精度浮動小数点値

  • 通貨-通貨価値

  • 10進数-10進数値

  • 日付-日付または時刻の値

  • 文字列-文字列値

  • ブール値-ブール値

  • 空-初期化されていない値

  • Null-有効なデータがありません

  • オブジェクト-オブジェクトのtypename

  • なし-オブジェクトインスタンスをまだ参照していないオブジェクト変数

  • Error

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim ArrVar(2), vartype
         NullVar = Null   ' Assign Null value.

         vartype = TypeName(3.1450)     
         Document.write "Line 1 : " &  vartype  & "<br />" 
         
         vartype = TypeName(432)         
         Document.write "Line 2 : " &  vartype  & "<br />" 
         
         vartype = TypeName("Microsoft")
         Document.write "Line 3 : " &  vartype  & "<br />" 
         
         vartype = TypeName(NullVar)   
         Document.write "Line 4 : " &  vartype  & "< br />" 
         
         vartype = TypeName(ArrVar)    
         Document.write "Line 5 : " &  vartype  & "<br />"

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

Line 1 : Double
Line 2 : Integer
Line 3 : String
Line 4 : Null
Line 5 : Variant()

評価

Eval関数は式を実行し、結果を文字列または数値として返します。

構文

Eval(expression)

引数Expressionは、文字列式または数値にすることができます。数式や関数名を含まず、単純なテキスト文字列のみを含む文字列をEval関数に渡すと、実行時エラーが発生します。たとえば、Eval( "VBScript")はエラーになります。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Document.write Eval("10 + 10") & "<br />"
         Document.write Eval("101 = 200") & "<br />" 
         Document.write Eval("5 * 3") & "<br />" 

      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

20
false
15

実行する

Executeステートメントは、実行用の1つ以上のステートメントを含む文字列式である引数を受け入れます。

構文

Execute(expression)

VBScriptでは、a = bは2つの方法で解釈できます。これは、xの値がyに割り当てられる割り当てステートメントとして扱うことができます。また、aとbの値が同じかどうかをテストする式として解釈することもできます。もしそうなら、結果は真です。そうでない場合、結果はFalseになります。Executeステートメントは常に最初の解釈を使用しますが、Evalステートメントは常に2番目の解釈を使用します。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim x
         x = "Global" 
         y = "VBScript"
         Execute("x = y")
         
         msgbox x
         msgbox y
        
      </script>
   </body>
</html>

IEでスクリプトを実行すると、拡張子が.htmlのファイルを保存すると、次の結果が画面に表示されます。

VBScript
VBScript

With..End With

Withステートメントを使用すると、オブジェクト名を何度も明示的に指定しなくても、指定したオブジェクトに対して一連の操作を実行できます。

構文

With (objectname)
   statement 1
   statement 2
   statement 3
   ...
   ...
   statement n
End With

次のスクリプトを実行すると、Winwordが開かれ、指定されたテキストが入力されます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Msg =  "Vbscript" & vbCrLf & "Programming"
         Set objWord = CreateObject("Word.Application")
         objWord.Visible = True
       
         ' Objects methods are accessed without requaliyfying the objects again.'
         With objWord
            .Documents.Add
            .Selection.TypeText Msg
            .Selection.WholeStory
         End With
         
      </script>
   </body>
</html>

ランダム化

Randomizeステートメントは、開発者が乱数を生成するのに役立つ乱数ジェネレーターを初期化します。

構文

Randomize [number]

次のスクリプトを実行すると、Winwordが開かれ、指定されたテキストが入力されます。

<!DOCTYPE html>
<html>
   <body>
      <script language = "vbscript" type = "text/vbscript">
         Dim MyValue
         Randomize   
         MyValue = Int((100 * Rnd) + 1)   ' Generate random value between 1 and 100.
         MsgBox MyValue
        
      </script>
   </body>
</html>

上記のスクリプトをHTMLとして保存し、IEでスクリプトを実行すると、次の出力が表示されます。

42