2016-09-12 10 views
0

異なる(固定ではない)数の引数をとる関数を作成する必要があります。次に、サーバーへの要求を実行し、最初の引数に応じて異なるデータを受け取ります。動的にVBAのExcelでudfを宣言する

など。 = performMethod( "methodName"; "arg1"; "arg2"; ...)

主なアイデアは、他のすべての機能を置き換え、すべてのロジックをサーバー側に移動する統一された機能を作成することです。クライアントのExcelファイルを置き換える必要なく、サーバー上の新しい機能

私の考えは「外出先で」機能を定義しようとしていたので、ユーザーはすぐにプロンプ​​トを表示して引数を説明します。これをVBA経由で実装できますか?そうでない場合、これを行う他の方法はありますか?

+2

はParamArraysを見てください。 http://www.tushar-mehta.com/publish_train/xl_vba_cases/1005%20ParamArray.shtml –

+0

@twone私の答えは下記のとおりです –

答えて

2

Excel VBAでもParameter Arraysを使用することができます。

=performMethod("POST",1,"Test",2)

または

=performMethod("POST",A1:C1,A2:A4,A6,A2:B4)

または

=performMethod("GET",1,A1:B4,"Test")

:だから、次のUDF

Public Function performMethod(methodName As String, ParamArray args() As Variant) As Variant 
Dim sArgs As String 
For Each arg In args 
    arg = arg 
    If VarType(arg) = vbVariant + vbArray Then 
    sArgs = sArgs & "; " 
    For Each itm In arg 
    sArgs = sArgs & itm & "," 
    Next 
    sArgs = Left(sArgs, Len(sArgs) - 1) 
    Else 
    sArgs = sArgs & "; " & arg 
    End If 
Next 
MsgBox methodName & sArgs 
performMethod = "done" 
End Function 

をとして呼び出すことができます

または

=performMethod("Test",A1:C4)

2

あなたには異なる引数が必要ですか?おそらくもっと良いアイデアは、実際には引数のリスト配列や変形である1つの引数を持つことでしょうか?

関連する問題