Microsoft® Visual Basic® Scripting Edition
VBScript のプロシージャ
目次  |
前ページ  | 次ページ  |

 

プロシージャの種類
Microsoft Visual Basic Scripting Edition (以下 VBScript) には、Sub プロシージャと Function プロシージャの 2 種類のプロシージャがあります。

Sub プロシージャ
Sub プロシージャは、Sub ステートメントと End Sub ステートメントで囲まれた一連の VBScript ステートメントで、このプロシージャは実行しても値を返しません。Sub プロシージャは、呼び出したプロシージャを通じて、定数、変数または式などの引数を取得できます。Sub プロシージャを定義するときに引数を省略する場合は、Sub ステートメントに空のかっこを付けなければなりません。

次の Sub プロシージャでは、ユーザーに情報を伝えるために 2 つの固有に組み込まれた VBScript の InputBox 関数 と MsgBox 関数が使われています。そしてその情報に基づく計算結果が表示されます。計算は使用している VBScript で作成された Function 関数で実行されます。次に Function プロシージャの解説を示します。


 Sub ConvertTemp()
    temp = InputBox("華氏の温度を入力してください。", 1)
    MsgBox "温度は摂氏 " & Celsius(temp) & " ℃ です。"
 End Sub

Function プロシージャ
Function プロシージャは、Function ステートメントと End Function ステートメントで囲まれた一続きの VBScript ステートメントです。Function プロシージャは、Sub プロシージと似ていますが、値を返すこともできます。Function プロシージャは、呼び出したプロシージャを通じて、定数、変数または式などの引数を取得できます。Function プロシージャを定義するときに引数を省略する場合は、Function ステートメントに空のかっこを付けなければなりません。Function プロシージャは、プロシージャの 1 つまたは複数のステートメントの名前に割り当てられている値を返します。Function プロシージャに返されるデータ型は、常にバリアント型です。

次の例では、Celsius 関数を使って華氏の温度から摂氏の温度を計算します。関数が ConvertTemp Sub プロシージャから呼ばれると、引数の値を持った変数が Function プロシージャに渡されます。呼んだ Sub プロシージャに計算結果が返され、メッセージボックスが表示されます。


 Sub ConvertTemp()
     temp = InputBox("華氏の温度を入力してください。", 1)
     MsgBox "温度は摂氏 " & Celsius(temp) & " ℃ です。"
 End Sub

 Function Celsius(fDegrees)
     Celsius = (fDegrees - 32) * 5 / 9
 End Function

プロシージャの内外からデータを取得する
各データは引数を使って、プロシージャに引き渡されます。引数はプレースホルダのようにプロシージャに引き渡すデータとなります。Sub ステートメントまたは Function ステートメントで使用するプロシージャを作成する場合は、プロシージャ名の後をかっこで囲みます。引数はカンマで区切って、かっこの中に置きます。たとえば、次の例では、引数 fDegrees は、変換を行う Celsius 関数に渡される値が入るプレースホルダです。


 Function Celsius(fDegrees)
    Celsius = (fDegrees - 32) * 5 / 9
 End Function

引数に有効な名前を付けることができます。

プロシージャの外部からデータを取得するには、Function プロシージャを使う必要があります。Function プロシージャと異なり、Sub プロシージャは値を返すことができません。

コード内での Sub プロシージャと Function プロシージャの使い方
Function プロシージャをコード内で使うには、必ず割り当てた変数の右側か、式の中で使わなければなりません。次に例を示します。


 Temp = Celsius(fDegrees)
または
 MsgBox "温度は摂氏 " & Celsius(temp) & " ℃ です。"

他のプロシージャから Sub プロシージャを呼ぶには、カンマで区切られた引数を値として持つプロシージャ名を記述します。Call ステートメントでは、引数を省略できます。引数を指定する場合、引数をかっこで囲まなければなりません。

次の例では、MyProc プロシージャを 2 回呼び出しています。1 回目は、コード内で Call ステートメントを使い、2 回目では使っていません。両方とも、まったく同じ動作をします。


 Call MyProc(firstarg, secondarg)
 MyProc firstarg, secondarg

Call ステートメントを使用しない場合は、かっこを付けないことに注意してください。


© 1997 Microsoft Corporation.