« 静的変数/Staticステートメントについて | トップページ | StrRevers関数 »

2011年5月28日 (土)

メソッド、プロシージャ、関数の呼び出しと引数指定

メソッド、プロシージャ、関数を呼び出すときの引数について、
括弧が要るのか、要らないのか?
複数の引数はどのように指定するか?
名前付引数はどう使うのか?
など整理したいと思います。
以下の順にみていきます。

1.メソッドの呼び出し
2.Subプロシージャの呼び出し
    2-a.Callステートメントを使用
    2-b.Callステートメントを不使用
3.関数(Functionプロシージャ)の呼び出し
    3-a.戻り値を使う
    3-b.戻り値を使わない

1.メソッドの呼び出し

・括弧は不可
・複数の引数を持つ場合、コンマで構文順に続ける
・名前付引数を使用して呼び出す場合は、
「引数名 := 値」の形でそれぞれの引数を指定する。
引数の順序は任意

例としてOnTimeメソッドを使います。
OnTimeメソッドの構文は次の通り。

expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)

LatestTime、Scheduleは省略可能なので省略します。
例:

Application.OnTime Now() + TimeValue("00:00:10"), "マクロ名"

Application.OnTime _
    EarliestTime:=Now() + TimeValue("00:00:10"), _
    Procedure:="マクロ名"

2.Subプロシージャの呼び出し

2-a.Callステートメントを使用

・括弧は必要
・複数の引数を持つ場合、コンマで構文順に続ける
・名前付引数を使用して呼び出す場合は、
「引数名 := 値」の形でそれぞれの引数を指定する。
引数の順序は任意

例:

Call プロシージャ名(値)
Call プロシージャ名(値1, 値2, 値3)
Call プロシージャ名(引数名1:=値1, 引数2:=値2, 引数3:=値3)

2-b.Callステートメントを不使用

・括弧は不要
・複数の引数を持つ場合、コンマで構文順に続ける
・名前付引数を使用して呼び出す場合は、
「引数名 := 値」の形でそれぞれの各引数を指定する。
引数の順序は任意

例:

プロシージャ名 値
プロシージャ名 値1, 値2, 値3
プロシージャ名 引数名1:=値1, 引数2:=値2, 引数3:=値3

3.関数(Functionプロシージャ)の呼び出し

3-a.戻り値を使う

・括弧は必要
・複数の引数を持つ場合、コンマで構文順に続ける
・名前付引数を使用して呼び出す場合は、
「引数名 := 値」の形でそれぞれの引数を指定する。
引数の順序は任意

例としてMsgBoxを使います。
MsgBoxの構文([ ]内は省略可能)

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

例:

Dim flag As Integer
flag = MsgBox("Yes or No?", vbYesNo, "タイトル")

Dim flag As Integer
flag = MsgBox(prompt:="Yes or No?", Buttons:=vbYesNo, Title:="タイトル")

3-b.戻り値を使わない

・括弧は不要
・複数の引数を持つ場合、コンマで構文順に続ける
・名前付引数を使用して呼び出す場合は、
「引数名 := 値」の形でそれぞれの引数を指定する。
引数の順序は任意

例:

MsgBox "実行します"

MsgBox "実行します", , "タイトル"

MsgBox prompt:="実行します", Title:="タイトル"

|

« 静的変数/Staticステートメントについて | トップページ | StrRevers関数 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: メソッド、プロシージャ、関数の呼び出しと引数指定:

« 静的変数/Staticステートメントについて | トップページ | StrRevers関数 »