- ベストアンサー
名前付き引数 stringとは?引数との違いも解説
- 名前付き引数 stringとは、指定した文字列式の左端から文字列を取り出すための引数です。
- 名前付き引数 stringには必ず指定する必要があり、Null値が含まれている場合はNull値を返します。
- 一方、引数とは異なり、名前付き引数は関数の呼び出し時に「名前:=値」という形式で指定します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まず,関数に引数(名前付き引数)が無いというのが最初の勘違いです。 それから名前付き引数は引数の一種で,実質的には同じモノです。 Left関数を例に取ると,Left関数は当然ですが res = left(string, length) といった構文で2つの引数を必要とします。 Left関数には,引数として res = left("abcdef", 4) のように,文字列として「"abcdef"」という文字列,長さとして4という数字を直接「left関数の構文に従った順序で」与えて計算させることができます。 一方名前付き引数を使い, msgbox left(string:="abcdef", length:=3) のようにすることもできます。 VBAのヘルプの「名前付き引数」のリンクに解説されているとおり,名前付き引数を msgbox left(length:=2, string:="abcdef") のように順不同で利用することもできます。(ふつーはこんなことをしても何もメリットはありませんので,やりませんけどね) left関数の場合,省略可能な引数はありませんので,stringとlengthの引数のどちらも省略できません。 でも例えばreplaceメソッドなどのように省略可能な引数がある関数やメソッドでは,名前付き引数を使い,途中の引数を省いて引数を渡すことができます。 よく見かける例としては range("A:B").sort key1:=range("A1"), order1:=xlascending, header:=xlno といった具合に名前付き引数を使います。 これを名前付き引数を使わずにただの引数で実現するには Range("A:B").Sort Range("A1"), xlAscending, , , , , , xlNo といった具合にしないとなりません。幾つカンマを入れたら正解なのか,憶えておくなんてとても出来ません。
お礼
どの関数にも名前付き引数があるのですか。 MsgBox Left(String:="abcdef", Length:=3) のような書き方が出来るとは知りませんでした。 ありがとうございました。