引数と返し値を持つことのできるユーザー定義関数を定義します。
Func functioname ( [Const] [ByRef] $param1, ..., [Const] [ByRef] $paramN, $optionalpar1 = value, ...)
...
[Return [value]]
EndFunc
パラメータ
ユーザーが定義したパラメータ。定義後、他の組み込み関数と同様にして呼び出すことができます。
注意
オプションでConst句を設定することでパラメータ値が関数実行中に変化しないように指定できます。Constで宣言された変数はConstパラメータを持つ関数にのみ渡すことができます。
関連
Dim/Global/Local, #include, Const
例
Opt('MustDeclareVars', 1)
Example1()
Example2()
; 例1
Func Example1()
; 3つのユーザー定義関数 サンプルスクリプト
; 変数、ByRef、Return 使用法
Local $foo = 2
Local $bar = 5
msgBox(0,"Today is " & today(), "$foo equals " & $foo)
swap($foo, $bar)
msgBox(0,"After swapping $foo and $bar", "$foo now contains " & $foo)
msgBox(0,"Finally", "The larger of 3 and 4 is " & max(3,4))
EndFunc ;==>Example1
Func swap(ByRef $a, ByRef $b) ;2つの変数の中身の入れ替え
Local $t
$t = $a
$a = $b
$b = $t
EndFunc
Func today() ;現在の日付を mm/dd/yyyy 形式で返す
return (@MON & "/" & @MDAY & "/" & @YEAR)
EndFunc
Func max($x, $y) ;2つの数の内大きい方を返す。
If $x > $y Then
return $x
Else
return $y
EndIf
EndFunc
;サンプルスクリプト1終了
; 例2
Func Example2()
; @NumParamsマクロのサンプルスクリプト
Test_Numparams(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
EndFunc ;==>Example2
Func Test_Numparams($v1 = 0, $v2 = 0, $v3 = 0, $v4 = 0, $v5 = 0, $v6 = 0, $v7 = 0, $v8 = 0, $v9 = 0, _
$v10 = 0, $v11 = 0, $v12 = 0, $v13 = 0, $v14 = 0, $v15 = 0, $v16 = 0, $v17 = 0, $v18 = 0, $v19 = 0)
Local $val
For $i = 1 To @NumParams
$val &= Eval("v" & $i) & " "
Next
MsgBox(0, "@NumParams example", "@NumParams =" & @NumParams & @CRLF & @CRLF & $val)
EndFunc
;サンプルスクリプト2終了