サブルーチンと関数
VBScript のサブルーチンと関数
このセクションでは、Altum Designer の VisualBasic スクリプトでサブルーチンおよびプロシージャを使用する方法の概要を説明します。
プロシージャへのパラメータの受け渡し
パラメータを受け取れる関数またはサブルーチン(プロシージャ/メソッド)をスクリプト内で定義した場合、変数は参照渡しまたは値渡しの2通りで関数/サブルーチンに渡せます。これはそれぞれ ByRef または ByVal を使用します。
パラメータを受け取るメソッドを宣言するには、Sub または Function ステートメントで関数/サブルーチンを定義する際、パラメータリスト内で ByRef または ByVal キーワードを使用します。たとえば、次のコード断片は2つのパラメータを受け取るサブルーチンを定義しています。1つ目は値渡し、2つ目は参照渡しです。
Sub Test (ByVal Param1 As Integer , ByRef B As String)
2つの方法の違いは、ByRef は変数への参照を渡し、サブルーチン/関数がパラメータとして渡された実際の変数を変更できる点です。これはパラメータ受け渡しのデフォルト方式であり、方式が明示的に宣言されていない場合に使用されます。
ByVal は変数の値のみを渡します。サブルーチンまたは関数はこの値を使用できますが、渡された元の変数は変更されません。
次の例は、方式の違いを示しています。メインプロシージャは次のとおりです。
Sub Main
Dim X, Y
X = 45 : Y = "Number"
Test X, Y ' Call to a subprocedure called Test.
MsgBox X
MsgBox Y
End Sub
上記のプロシージャには、サブプロシージャ Test の呼び出しが含まれています(下記参照)。
サブルーチンが次のように定義されている場合:
Sub Test (ByRef A, ByRef B)
B = B & " = " & A : A = 10*A
End Sub
メインプロシージャ内の変数 X と Y は、サブルーチンから直接参照されます。その結果、X と Y の値はサブルーチンによって変更され、Test の実行後は X = 450、Y = "Number = 45" となります。これは、方式が明示的に宣言されていない場合のデフォルト動作です。
一方、サブルーチンが次のように定義されている場合:
Sub Test (ByVal A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Test の実行後、メインプロシージャは X = 45、Y = "Number" と報告します。つまり、これらは変更されません。
または、サブルーチンが次のように(混在方式で)定義されている場合:
Sub Test (ByRef A, ByVal B)
B = B & " = " & A : A = 10*A
End Sub
Test の実行後、X = 450、Y = "Number" となります。Y は値渡しで渡されたため、変更されないからです。
呼び出しステートメントで変数名を括弧で囲むことで、関数またはサブルーチンの ByRef 設定を上書きできます。
次のステートメントで Test を呼び出すと:
Test (X), Y
...プロシージャ定義でそのパラメータにどの方式が定義されているかに関わらず、変数 X は値渡しで渡されます。
日付と時刻のルーチン
VBScript 言語は、以下に示す日付/時刻ルーチン一式をサポートしています。
|
|
|
|
|
|
|
|
|
|
|
|
ファイル IO ルーチン
VBScript 言語は、次のファイル IO ルーチン一式をサポートしています。
|
|
|
|
|
|
|
|
|
数学ルーチン
VBScript 言語は、次の数学ルーチン一式をサポートしています。
|
|
|
|
|
|
|
|
|
|
|
|
文字列ルーチン
VBScript 言語は、以下に示すとおり、さまざまな文字列ルーチンをサポートしています。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サーバープロセス ルーチン
サーバープロセス ルーチンは、スクリプト内でプロセスを扱う際に使用します。特に、プロセスパラメータの文字列を抽出(取得)したり設定したりする必要がある場合に用います。
スクリプトでプロセスおよびパラメータを実行するには、次の関数を使用します。
|
|
|
|
|
|
|
|
|
Useful functions
|
|
|
|
|
|
|
|
|
Useful Dialogs
|
|
|
|
|
|