よろしくお願いします
ユーザー関数を作成したいのですが、用意した変数に
確実に値が入るとは限りません。
function UserFunc(a as long,b as string) as long
の場合に、a,もしくはbがnullの可能性があります
実際の関数は、変数が10個以上あり
関数の呼び出し側でnullチェックの構文を作るのが手間なので
関数宣言で、nullを受け入れる形にして、
関数内で、nullチェックをしたいと考えてます。
as variantで受けるとnullを許容できますが、
あまり使いたくありません。
なにかよい方法はありますか
----------------
関数の引数をオプショナルにしておくとか
> as variantで受けるとnullを許容できますが、
> あまり使いたくありません。
とすると、nullチェックではなく、Optionalにして引数が渡されたかどうかを
チェックすることになります
Function UserFunc(Optional a As long = -9999, _
Optional b As string = "Null") As long
If a = -9999 Then
Msgbox "引数aはありません。"
Else
Msgbox "引数aは" & a & "です。"
End If
If b = "Null" Then
Msgbox "引数bはありません。"
Else
Msgbox "引数bは" & b & "です。"
End If
End Function
引数の判断は
イズミッシング関数をつかってもいいよね
皆様ありがとうございます。
なんか常識過ぎて、検索エンジンに引っかからないので
頼ってしまいました。
特にleisa様、ばっちりです。
nullとは、VariantのNull?、Empty?、それともNull文字列?、Null文字?
また、そのnullはどこから来るのでしょうか? DBから? 直接読み込んだ
ファイルから? その他から?
で、VariantのNullだとした場合、
A,その関数に渡す前にチェックし、関数用に正規化する。
B,関数で構わず受けてしまって、チェックする。(... As Variant)
のどちらかをなすべきですよね。
この場合、前者を手間といい、後者を好ましくない、と言っても、
どちらかにするしかないのでは。
ツイート | ![]() |