【VBA】関数の引数を省略可能にする【ユーザー定義関数】

本記事ではユーザー定義関数で指定する引数を省略可能にする方法について解説していきます。

スポンサーリンク



省略可能な引数を指定する方法

省略可能な引数を指定したい時には『Optionalキーワード』を使います。

この引数指定時にOptionalキーワードを指定すると、指定した引数は渡さなくてもエラーが出ません。

また、その引数を省略した際に使う『デフォルト値』を指定することもできます

 

イメージがしにくいと思うので、次のコードでさらに具体的に内容で解説していきます。

ここでは単価100円の商品の消費税込みの価格を求めるという内容になります。

そして、引数を省略するかしないかで消費税が8%か、10%かを変えています。

今回はTax関数の第二引数を省略可能の引数に指定しています。

そして、7行目にはTax関数の第二引数は「なし」、8行目には第二引数「0.1」を指定しています。

※引数を渡さない場合はデフォルト値を使用する。

 

そして、Tax関数の中身は次のようになっています。

1行目の「Optional taxRate As Double = 0.08」が重要ポイントです。

第二引数ではOptionalキーワードを使って、引数taxRateを省略可能引数にしています。

加えて、引数を省略した場合に使うデフォルト値に「0.08」を指定しています。

Tax関数:3行目

引数なし:Tax = price * (1 + 0.08)

引数あり:Tax = price * (1 + 0.1)

 

上のコードを実行すると下のような結果が得られます。

上の結果から分かるように、第二引数を省略した場合には”108円”、第二引数を渡した場合は渡した値(0.1)を使い”110円”を表示されています。

 

引数を省略したかを確認できる『IsMissing関数』

ちなみに省略可能の変数が省略されたかを判定できる『IsMissing関数というモノがあります。

この関数を使うと省略された場合にTrue判定されます。

 

上のコードの「tax関数」と同じ結果を得られるようにIsMissing関数を使うと次のようになります。

上と同様、1行目で引数taxRateを省略可能引数にしています。

そして、ここで重要なのが3行目の「If IsMissing(taxRate) Then」になります。

3行目を訳すと「もしも、引数taxRateが引数として渡されていない場合は~」といった意味になります。

 

IsMissing関数の注意点IsMissing関数で判定する場合は省略可能変数の型Variant型でなければなりません。

※上のコードの場合、1行目の「Optional taxRate As Variant」部分です。

それ以外の型だった場合、IsMissing関数の判定がすべてFalseになってしまいます。

 

【VBA】ユーザー定義関数を作る方法【Functionプロシージャ】
Excelにはたくさんの関数が用意されています。 それでも、自分が思った関数が用意されていない時があり、そんなときには『Functionプロシージャ』を使って新たに独自の関数(ユーザー定義関数)を作ることができます。 V...
【VBA】関数の引数を可変長にする方法【ユーザー定義関数】
「ユーザー定義関数に渡す引数の数は可変長にしたい」 VBAでツール作成をしていると、複数の同じ用途の値を同時に処理したくなる時があります。 そして、ワークシートのデータなどを扱う処理の場合、引数に渡したい値の数は決まっていない時...
【VBA】ユーザー定義関数の戻り値を複数にする方法【ByRefを使う】
「ユーザー定義関数の戻り値を2つ以上にしたいな」 VBAでツール作成をしていると、複数の値に対して「同じ処理を行う」「複数の戻り値が欲しい」という時があります。 しかし、関数の戻り値は1つしかありませんし、増やすこともで...

 

〇おすすめのVBA参考書ランキング!

1位

2位

3位

Excel VBA 脱初心者のための集中講座パーフェクトExcel VBAExcelVBA 実戦のための技術
初心者~中級者中級者初心者~中級者
【初心者が手に取るべき参考書】

・「書籍+動画」で圧倒的に理解しやすい入門書になっている。

・丁寧で詳しい解説でボリューム感がある。

【より深い理解をしたい方にお勧めな参考書】

・テーマに対して丁寧な解説・適度な深さで解説されている。

・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。

【入門書と一緒に買うべき参考書】

・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。

・実践的で効果的なコードの書き方が理解できる。

【読んでみた一言】
正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。
【読んでみた一言】
深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。
【読んでみた一言】
基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。

¥2,794円
amazonで確認!

¥3,608円
amazonで確認!

¥2,640円
amazonで確認!

スポンサーリンク