2017-08-18 9 views
0

Javaで、例えば、最初のものから呼び出される別の関数の中にいくつかのコードを配置する方法があります:エクセルVBAのpythonのように、ネストされた内側の潜水艦、他のプログラミング言語でJava

public void exercise() { 
     run(); 
     jump(); 
     walk(); 
} 

vbaに潜水艦を置く方法がありますか?私はしようとしました

Sub test1() 
    test2() 
End Sub 

Sub test2() 
    MsgBox("test2") 
End Sub 

しかし間違います。

答えて

2

あなたは括弧なしでこれをするでしょう:

Sub test1() 
    test2 
End Sub 

括弧は、関数の出力を割り当てるために、引数を囲むために必要とされています変数に変換する。サブプロセスが引数を取った場合は、次のようになります。

Sub test1() 
    test2 "Hello", "World" 
End Sub 

Sub test2(arg1, arg2) 
    Msgbox arg1 & " - " & arg2 
End Sub 
+1

プロシージャではなく関数に引数を渡す場合は、カッコを入れる必要があります。関数が引数を取らない場合は、そうしないでください。関数 'test2'が' arg1& ' - "&arg2'の結果の文字列を返すと 'MsgBox test2(" Hello "、" World ")'が必要になります。 '引数なしで' MsgBox test2'を使うことができます。シンプル。 :) –

0

あなたがサブルーチンを呼び出すためにcallを使用する必要があります。

call test2() 
+0

プロシージャを呼び出すときにCallキーワードを使用する必要はありません。ただし、Callキーワードを使用して引数が必要なプロシージャを呼び出す場合は、引数リストを括弧で囲む必要があります。 Callキーワードを省略した場合は、引数リストのかっこも省略しなければなりません。コール構文を使用して任意の組み込み関数またはユーザー定義関数を呼び出すと、関数の戻り値は破棄されます。配列全体をプロシージャに渡すには、配列名の後に空のかっこを続けて使用します。 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/call-statement –

+1

ああ、私は大括弧を外すことを忘れていました、@ DarrenBartrup-Cook、もちろんそうです。 VBAは今私の仕事では珍しい獣です。 :-) – Arminius

関連する問題