VBAに関する質問です。プロシージャの変数の引数を、変数名で指定できたような気がします。sub func1(a="",b="")云々と定義して

call func1(a:="たぬき") のようなことができたような記憶があります。書き方がよくわからないので、書いてあるページ教えてください。
b="" のように書いてあると、呼び出す側は、b を引数として指定しなくてもよかったような覚えがあります。

回答の条件
  • URL必須
  • 1人2回まで
  • 13歳以上
  • 登録:2010/02/26 17:22:18
  • 終了:2010/02/26 18:10:01

回答(1件)

id:SALINGER No.1

SALINGER回答回数3454ベストアンサー獲得回数9692010/02/26 18:05:36

ポイント60pt

「名前付き引数」のことであると思いますが、これはプロシージャを定義すればそのまま名前付き引数としても使えます。


例えば、のようにoptionalを付ければ引数が省略されたときの初期値となります。

Sub func1(Optional a = "", Optional b = "")
    Debug.Print a & b
End Sub

Sub test()
    Call func1(a:="たぬき")
End Sub

http://officetanaka.net/excel/vba/statement/Function.htm

  • id:taknt
    http://officetanaka.net/excel/vba/statement/Function.htm

    Function test4(arg1, Optional arg2 = 5)


    これのことだろ。

    関数を宣言するときに 指定する。
  • id:kaiketsu
    なるほど、optional とかかかないといけないのですね。
    arg1:= という書き方はあるでしょうか?
  • id:taknt
    VBAの経験は 長いけど そんな書き方は 知らないなぁ。

  • id:SALINGER
    回答したけどコメントと同じ内容でしたので開かなくてけっこうです。
    arg1:=
    という書き方というのは、普通にプロシージャを定義すればできます。
    ただし、省略はoptionalをつけないとできないということ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません