Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » ユーザー定義関数で引数を省略可能に−Optionalキーワード

ユーザー定義関数で引数を省略可能に−Optionalキーワード

対象:Excel97,Excel2000,Excel2002,Excel2003

VBA(Visal Basic for Applications)のコーディングに慣れ、ユーザー定義関数を作り始めた方からいただく質問があります。
引数を省略可能にするにはどうすればいいのでしょうか?
というご質問です。

例えば、ワークシート関数のVLOOKUP関数では引数を4つ指定しますが、第4引数の「検索の型」は省略することができます。

[スポンサードリンク]
これと同様のことを、ユーザー定義関数でするにはどうすればいいのかというご質問です。
▼ユーザー定義関数で引数を省略可能にする
引数にOptionalキーワードをつける

例えば、会員価格を求める「MemberPrice」というユーザー定義関数を作成するようなケースを考えてみます。

会員種別に一般会員と特別会員があり、引数に元の価格と、会員種別を判別する数字を指定する仕様にした場合、Functionプロシージャは以下のような感じになります。

Function MemberPrice(curOrg As Currency, intOpt As Integer) As Currency
 Select Case intOpt
  '特別会員価格:25%引き
  Case 0
   MemberPrice = Int(curOrg * 0.75)
  '一般会員価格:10%引き
  Case 1
   MemberPrice = Int(curOrg * 0.9)
 End Select
End Function

引数intOptが「0」のときに特別会員価格として25%引きの、「1」の場合に一般会員価格として10%引きの価格を返す仕様です。

このときにintOptを省略可能として、省略された場合には一般会員の「1」が指定されたとする場合、Functionステートメントは以下のとおりです。

Function MemberPrice(curOrg As Currency, Optional intOpt As Integer = 1) As Currency

省略可能な引数intOptの前に「Optional」キーワードをつけ、省略された場合の値を末尾に「= 1」という形で指定します。

なお、「Optional」キーワードを指定した場合、それ以降の引数も省略可能にしなければなりません。

関連語句
自作関数

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ユーザー定義関数 » ユーザー定義関数で引数を省略可能に−Optionalキーワード

「ユーザー定義関数」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.