TOP

VBA-レッスン 7.2。条件 (条件)

If...Then...Else 条件と Select Case 条件のチェックに加えて、次のチェックも使用できます。

  • データ型の比較 (関数 IsNumeric、IsDate、IsEmpty、演算子 Is Nothing)
  • 変数の型の比較(VarType関数)
  • テキスト フィードの比較 (演算子 Like)

  • データ型チェック

    IsNumeric (前のレッスンで使用した関数) は、値が数値の場合は TRUE (TRUE) を返し、 - が数値でない場合は FALSE (FALSE) を返します。

    If IsNumeric(Range("A1")) = True Then '値が数値の場合...
    

    次のコードは、前のコードと同じ効果を生成します (構成自体が条件チェックであるため、 = True を含める必要はありません)。

    If IsNumeric(Range("A1")) = True Then '値が数値の場合...
    

    値が数値ではないかどうかを確認したい場合は、次の 2 つの方法で行うことができます。

    If IsNumeric(Range("A1")) = False Then '値が数値ではない場合...
    
    If Not IsNumeric(Range("A1")) Then '値が数値ではない場合 ...
    

    IsNumeric に似た関数をさらにいくつか見てみましょう。

    If IsDate(Range("A1")) Then '値が日付の場合 ...
    
    If IsEmpty(Range("A1")) Then '空の場合...
    
    If var_object Is Nothing Then 'オブジェクトが定義されていない場合 ...
    

    変数の型を確認する

    変数の型に基づいてコマンドを実行するには、VarType 関数を使用する必要があります。

    「=」記号を入力するとすぐに、変数タイプのリストが表示されます。

    If VarType(my_variable) = vbInteger Then 'my_variable が変数タイプ Integer の場合 ...
    

    定数の値:

    定数 価値
    vbEmpty0
    vbNull1
    vbInteger2
    vbLong3
    vbSingle4
    vbDouble5
    vbCurrency6
    vbDate7
    vbString8
    vbObject9
    vbError10
     If VarType(my_variable) = vbInteger Then 'my_variable が変数タイプ Integer の場合 ...
     '以下と同一です:
     If VarType(my_variable) = 2 Then 'my_variable が変数タイプ Integer の場合 ...
    

    テキスト フィードの比較 (Like)

    少し前に、次のコード スニペットを使用しました。

    my_variable = "Example 12345"
    
    If my_variable = "Example 12345" Then '=> TRUE (TRUE)
    

    この場合、2 つのテープは同じですが、変数に値「12345」が含まれているかどうかを確認したいとします。他の文字を考慮せずに、Like コマンドと、探している値の前後に演算子 * (アスタリスク) を使用する必要があります。

    演算子 * (アスタリスク) は、次のように解読されます: 任意の文字または文字セット:

    my_variable = "Example 12345"
    
    If my_variable Like "*12345*" Then '=> TRUE (TRUE)
    

    演算子 # (ハッシュ) は、0 ~ 9 の任意の単一の数字としてデコードされます。

    my_variable = "Example 12345"
    
    If my_variable Like "Example 12###" Then '=> TRUE (TRUE)
    

    オペレーター? (疑問符) は次のように解読されます: 任意の 1 文字:

    my_variable = "Example 12345"
    
    If my_variable Like "?xample?1234?" Then '=> TRUE (TRUE)
    

    特定の文字または文字セットを同じ方法で使用することもできます。

    my_variable = "Example 12345"
    
    If my_variable Like "[DEF]xample 1234[4-7]" Then '=> TRUE (TRUE)
    

    オペレーター! [ の後に追加された (感嘆符) は、角括弧で囲まれていない任意の文字を意味します。

    my_variable = "Example 12345"
    
    If my_variable Like "[!GHIJ]xample 1234[!6-9]" Then '=> TRUE (TRUE)
    
    この文脈では、大文字は同じ小文字と同等ではありません。大文字と小文字を区別したくない場合は、モジュールの先頭に Option Compare Text コマンドを記述します。