即効テクニック |
変数などの値をチェックする関数は、意図しない結果が起こらないようにコーディングするためには、是非覚えておきたい機能です。値をチェックする関数には、次の一覧に挙げるようなものがあります。 ・値をチェックする関数一覧 関数名 内容 IsDate関数 値を日付型に変換可能かどうかをチェック IsNumeric関数 値を数値として評価できるかどうかをチェックする IsObject関数 識別子がオブジェクトかどうかをチェックする IsEmpty関数 値がEmptyかどうかを調べる IsError関数 式がエラー値を持つかをチェック IsMissing関数 省略可能な変数がプロシージャに渡されたかをチェック IsNull関数 式にNull値が含まれているかをチェック IsArray関数 変数が配列かどうかをチェック 構文 チェックを行う関数(Var) 設定項目 内容 Var チェックを行う対象を指定[省略不可] どの関数もBoolean型で結果が返ってきます。次のサンプルを見てください。 ●サンプル●
Sub IsDateSamp1() Dim myDate As String InputDate: myDate = InputBox("誕生日を入力してください") '---キャンセル時の処理 If myDate = "" Then Exit Sub '---(1)日付ではないデータが入力された場合 ElseIf IsDate(myDate) = False Then MsgBox "日付データとして不正です" '---再入力 GoTo InputDate Else MsgBox "あなたが生まれてから " & DateDiff("d", CDate(myDate), Date) & "日" End If End Sub
●解説● ユーザーにInputBox関数で日付を入力してもらうのですが、(1)のステートメントで、入力値のチェックにIsDate関数を使用しています。 このように、チェックの対象となる状態に変数などがなっていない場合にFalseを返す機能を利用し、想定外の処理がなされることを防ぎます。 ●注意● Null値とEmpty値は間違いやすいので注意が必要です。Null値はバリアント型(Variant)に有効なデータが入っていないことを示す値であり、Empty値は変数が初期化されていないことを示す値です。Empty値は数値としては0と評価され、文字としては長さ0の文字列("")と評価されます。