文字列パラメータに基づいてユーザー定義関数を実行します。
Call ( "function" [, param1 [, param2 [, paramN ]]] )
パラメータ
function | 実行するユーザー定義関数の名前 |
param | 実行時に関数に渡される引数 |
返し値
成功 | 実行した関数の返し値を返します。また呼び出した関数が@errorと@extendedを設定する場合は@errorと@extendedにその値が格納されます。 |
失敗 | 関数が存在しない場合やパラメータの数が正しくない場合、@errorに0xDEAD、@extendedに0xBEEFを設定します。 |
注意
functionにAutoItの組み込み関数、プラグイン関数を指定することはできません。
関連
Execute
例
; 引数の無い関数を実行
Call("Test1")
; 引数1つの関数に引数を与えて実行
Call("Test2", "Message from Call()!")
; 配列を使って引数を渡す方法のデモ
Global $aArgs[4]
$aArgs[0] = "CallArgArray" ; 必須。もし無いとCall()は引数のはいった配列と認識できない。
$aArgs[1] = "This is a string" ; 1つ目のパラメータは文字列
$aArgs[2] = 47 ; 2つ目のパラメータは数値
Global $array[2]
$array[0] = "Array Element 0"
$array[1] = "Array Element 1"
$aArgs[3] = $array ; 2つ目のパラメータは配列
; 作成した引数配列で関数を実行
Call("Test3", $aArgs)
; 存在しない関数の呼び出しテスト。 @errorと@extendedにドキュメントに書かれた失敗値
; が格納されているかどうかを調べる適切なテスト方法を示す。
Local Const $sFunction = "DoesNotExist"
Call($sFunction)
If @error = 0xDEAD And @extended = 0xBEEF Then MsgBox(4096, "", "Function does not exist.")
Func Test1()
MsgBox(4096, "", "Hello")
EndFunc
Func Test2($sMsg)
MsgBox(4096, "", $sMsg)
EndFunc
Func Test3($sString, $nNumber, $aArray)
MsgBox(4096, "", "The string is: " & @CRLF & $sString)
MsgBox(4096, "", "The number is: "& @CRLF & $nNumber)
For $i = 0 To UBound($aArray) - 1
MsgBox(4096, "", "Array[" & $i & "] contains:" & @CRLF & $aArray[$i])
Next
EndFunc