HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > 変数/式の状態をチェックする(チェックを行なう8種類のIs関数)

即効テクニック

関数関連のテクニック

変数/式の状態をチェックする(チェックを行なう8種類のIs関数)

(Excel 2000)
変数などの値をチェックする関数は、意図しない結果が起こらないようにコーディングするためには、是非覚えておきたい機能です。値をチェックする関数には、次の一覧に挙げるようなものがあります。

・値をチェックする関数一覧
関数名          内容
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の文字列("")と評価されます。