[Excel VBA] IsMissing...

VB/VBAでは引数にOptional が使える。Delphi、C++、VB.Net にはない機能だ...
関数を作る際に、Optional A As Variantなど Optional付で指定したパラメータは省略ができるようになる。
そしてその関数を利用する際に、Optional のパラメータが省略されたかどうかを調べることができるのが、IsMissing というわけ!

しかし、VB6以前には Optional パラメータには Variant 型しか指定できなかったのが、VB6からは Boolean 型なども指定できるようになった。しかし、Variant 型以外を指定した場合には、IsMissing 関数が使用できないのだ!!

知らんかった...

型指定の省略可能パラメータを省略した場合には、デフォルトの省略値が最初からセットされた形で関数が処理されている。
Boolean であれば False、数値型であれば 0、文字列型であれば空文字列がデフォルトの省略値。
変数宣言して初期値で初期化しなかったときのデフォルトと同じですな...

Boolean 型の省略パラメータに対し、 IsMissing を使用して省略判定しようとして期待した結果にならないからと、デバッグして初めてわかったポカミスでした。(T_T)

コメント (0件)


くろねこ研究所
https://www.blackcat.xyz/article.php/ProgFAQ-Xls_IsMissing