Function Reference

Call

文字列パラメータに基づいてユーザー定義関数を実行します。

Call ( "function" [, param1 [, param2 [, paramN ]]] )

 

パラメータ

function 実行するユーザー定義関数の名前
param 実行時に関数に渡される引数

 

返し値

成功 実行した関数の返し値を返します。また呼び出した関数が@errorと@extendedを設定する場合は@errorと@extendedにその値が格納されます。
失敗 関数が存在しない場合やパラメータの数が正しくない場合、@errorに0xDEAD、@extendedに0xBEEFを設定します。

 

注意

functionにAutoItの組み込み関数、プラグイン関数を指定することはできません。
関数に引数を渡すことは可能ですが、ByRefパラメータはサポートされていません。ByRefパラメータを取得する方法はありません。
個別のパラメータの代わりに配列を使ってパラメータを渡すことが可能です。配列の最初の要素には"CallArgArray"を代入し、1-n番目の要素に関数に渡すパラメータをそれぞれ設定します。この配列を使用してパラメータを渡す場合、他のパラメータはCall()に渡されません。例を参照してください。
Call()も、呼び出される関数も@errorを設定することができます。Call()が@errorを設定する場合はその値は0xDEADで@extendedも0xBEEFに設定されます。存在しない関数を呼び出すデモの例を参照してください。

 

関連

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