IsMissing 関数の使い方
【書式】
result = IsMissing ( argname )
【引数・戻り値】
- argname ・・・ プロシージャの省略可能なバリアント型の引数の名前を指定します。
- result ・・・ プロシージャを呼び出したときに省略可能なバリアント型引数がプロシージャに渡されたかどうかの結果(ブール型)
引数が渡されなかった時、つまり引数が省略されたとき ⇒ 真(True)
引数が渡された時 ⇒ 偽(False)
IsMissing 関数は、バリアント型以外の整数型や倍精度浮動小数点型などの通常のデータ型に対しては無効です。
IsMissing 関数の使用例
サンプルVBAソース<その1>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
'------------------------------------------------------------------------------ ' IsMissing 関数の動作 '------------------------------------------------------------------------------ Sub Sample_ismissing() Dim num As Long, str As String, obj1 As Object, obj2 As Object num = 100: str = "こんにちは" Set obj2 = Nothing Debug.Print test_missing01() 'True ※引数が省略された Debug.Print test_missing01(num) 'False Debug.Print test_missing01(str) 'False Debug.Print test_missing01(obj1) 'False Debug.Print test_missing01(obj2) 'False Debug.Print test_missing01(Null) 'False Debug.Print Debug.Print test_missing02() 'False ※この場合、argu は、0 となる Debug.Print test_missing02(num) 'False Debug.Print Debug.Print test_missing03() 'True ※引数が省略された Debug.Print test_missing03(num, str) 'False Debug.Print test_missing03(obj1) 'False Debug.Print test_missing03(obj2) 'False Debug.Print test_missing03(1, 2, 3) 'False Debug.Print test_missing03(Null) 'False End Sub '------------------------------------------------------------------------------ '省略可能なバリアント型引数 Function test_missing01(Optional argu) test_missing01 = IsMissing(argu) End Function '省略可能な数値型(Long)引数 Function test_missing02(Optional argu As Long) test_missing02 = IsMissing(argu) End Function 'キーワード ParamArray を指定した引数 Function test_missing03(ParamArray argu()) test_missing03 = IsMissing(argu) End Function |
実行結果
サンプルVBAソース<その2>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
'------------------------------------------------------------------------------ ' IsMissing 関数 使用例 '------------------------------------------------------------------------------ '以下のように、省略可能な引数(バリアント型)を使用し、 '省略した場合の処理(初期値を指定する等)を行う場合に 'IsMissing 関数を使用します Sub Sample_ismissing01() MsgBox test_missing04() End Sub '------------------------------------------------------------------------------ Function test_missing04(Optional argu) If IsMissing(argu) Then argu = "引数は省略されました!" End If test_missing04 = argu End Function |