<< 前へ        次へ >>

ID : 5279

CallByName

機能

プロシージャを呼び出し、実行します。Callコマンドと異なり、プロシージャ名に式を使用することができます。

構文

CallByName プロシージャ名[, 引数リスト[,戻り値]]

指定項目

プロシージャ名 
呼び出すプロシージャ名を文字列型データで指定します。
引数リスト
プロシージャに渡す引数をバリアント(Variant)型の配列で指定します。
戻り値
戻り値を入れる変数を、呼び出すプロシージャの戻り値の型に合わせて指定します。この指定はFunctionプロシージャで戻り値がある場合にのみ有効で、他の場合は無視されます。

解説

プログラム実行時にプロシージャ名として指定した式を評価してプロシージャ名を動的に作り出してCallします。名前が連番になっているプログラムをまとめてCallするのに便利です。

関連項目

Call、その他はCallと同じ。

注意事項

Callを参照してください。
CallByNameはCallと異なり、参照渡し(ByRef)に対応していません。呼び出すプロシージャの引数が参照渡し(ByRef)で指定された場合は、値渡し(ByVal)が指定されたとして処理されます。
参照渡し(ByRef)、値渡し(ByVal)については、プログラマーズマニュアルの「引数付きでプロシージャを呼び出す」を参照してください。

用例

下記の例ではFor文をFunctionプロシージャHoge1~Hoge5を使って動的に名前を作成しCallしています。Hoge1~Hoge5の
引数が3つあるのでCallByNameでは要素が3つの配列を定義しています。

'!TITLE "式を使ったプロシージャの呼び出し、実行"
'Pro1.pcs
Sub Main 
	TakeArm Keep = 0
	Dim lRes As Integer
	Dim n As Integer
	
	'プロシージャ名Hoge1~Hoge5を式を使って作成し呼び出す
	For n = 1 To 5
		'プロシージャに渡す引数は配列で指定
		CallByName "Hoge" & n, Array( "Hoge" & n, n, P[n] ), lRes
		PrintDbg lRes
	Next
End Sub

Function Hoge1( ByVal sVal As String, ByVal lCnt As Integer, 
ByVal posCur As Position ) As Integer
	Hoge1 = lCnt
End Function

Function Hoge2( ByVal sVal As String, ByVal lCnt As Integer, 
ByVal posCur As Position ) As Integer
	Hoge2 = lCnt
End Function

Function Hoge3( ByVal sVal As String, ByVal lCnt As Integer, 
ByVal posCur As Position ) As Integer
	Hoge3 = lCnt
End Function

Function Hoge4( ByVal sVal As String, ByVal lCnt As Integer, 
ByVal posCur As Position ) As Integer
	Hoge4 = lCnt
End Function

Function Hoge5( ByVal sVal As String, ByVal lCnt As Integer, 
ByVal posCur As Position ) As Integer
	Hoge5 = lCnt
End Function

ID : 5279

<< 前へ        次へ >>