マクロで数値入力範囲の入力規則

マクロ講座61回 
マクロで数値入力範囲の入力規則

入力規則を設定 数値の範囲 Excel 2013 マクロ講座 61回

入力規則で数値の範囲を制限する

ドロップダウンリストによる入力規則の次は、数値入力範囲の入力規則です。
マクロで、入力エラーの場合のメッセージも表示するように設定しましょう。

(サンプルファイルは、こちらから マクロ61回サンプルデータ

入力できる値を制限するValidationオブジェクト

入力規則はValidationオブジェクトで設定します。 サンプルの表の範囲B2:B7に対してValidationオブジェクトのAddメソッドを設定するのですが、ここでは前もって、お約束の Deleteメソッドで既存の入力規則を削除しておきます。
入力規則で数値の範囲を指定マクロ1
    With ActiveSheet.Range("B2:B7").Validation
        .Delete
    
入力規則はAddメソッドで追加しますが、 下図のように、入力規則に対応したTypeを指定し、それに応じた引数を設定します。 引数Typeごとに他の引数が変わってきます。 今回使うxlValidateWholeNumberや、xlValidateDate、xlValidateDecimal、xlValidateTextLength、または xlValidateTimeの時は、 引数 Formula1 と引数 Formula2 のどちらかを指定するか、あるいは両方を指定する必要があります。
入力規則で数値の範囲を指定マクロ2

整数のタイプを指定するxlValidateWholeNumber

入力規則のTypeに整数を指定したい時は、定数
Add Type:=xlValidateWholeNumberを指定し、
20から100の数値という指定をしたい時は、引数OperatorにxlBetweenを指定します。 Operator:=xlBetween
コードは次のようになります。
Sub 数値の入力規則()
    With ActiveSheet.Range("B2:B7").Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, _
             Operator:=xlBetween, Formula1:="20", Formula2:="100"
        .ErrorMessage = "20から100の数値を入力してください"
    End With
End Sub
    
入力規則に数値範囲を設定する場合は、エラーメッセージも表示しましょう。
入力規則で数値の範囲を指定マクロ3

入力規則の引数Operatorに指定する定数

引数Operatorでは、入力条件を設定します。
入力規則で数値の範囲を指定マクロ4
数値の範囲指定に30以下の数値を指定するには、引数OperatorにxlLessを設定し、Formula1に30と入力します。
Sub 数値の入力規則2()
    With ActiveSheet.Range("B2:B7").Validation
        .Delete
        .Add Type:=xlValidateWholeNumber, _
             Operator:=xlLess, Formula1:="30"
        .ErrorMessage = "30以下の数値を入力してください"
    End With
End Sub
    

入力規則で数値の範囲を指定マクロ5