【VBA】入力規則を設定する方法

今回はVBA(マクロ)でExcelの入力規則を設定する方法を紹介します。

入力規則はセルに入力できる内容をリストで指定したり、数字しかセルに入力できなくするExcelの機能です。

大勢が入力するExcelファイルには入力規則を設定するのがおすすめです。

ただ、入力欄が多いと手作業で入力規則を設定するのは大変です。
VBA(マクロ)で一気にラクラク設定してしまいましょう。

入力規則を設定する方法 (Validationオブジェクト)

入力規則の設定にはValidationオブジェクトを使用します。

Range.ValidationによってValidationオブジェクトを取得し、Addメソッドで入力規則を追加します。

Sub Sample()
    
    With Range("A1").Validation
        .Delete '既存の入力規則を削除
        
        '入力規則を設定(リスト)
        .Add _
             Type:=xlValidateList, _
             Formula1:="はい,いいえ,その他"
    End With
End Sub

サンプルコードはA1セルにリストの入力規則を設定します。
(すでに入力規則があるセルにAddメソッドを使うとエラーとなるため、最初にDeleteしています)

Addメソッドの引数Typeによって入力規則の種類が変化します。

このコードではxlValidateListを入れているため、リストの入力規則となっています。

リストの候補は引数Formula1に設定します。

サンプルコードでは"はい,いいえ,その他"の3つを設定しています。

Sub Sample2()
    
    With Range("A1").Validation
        .Delete '既存の入力規則を削除
        
        '入力規則を設定(範囲内の数値)
        .Add _
             Type:=xlValidateWholeNumber, _
             Formula1:="1", _
             Formula2:="10"
    End With
End Sub

もう1つサンプルコードを紹介します。

こちらのコードでは入力できる数値の範囲を限定しています。

このコードを実行すると1~10までの数値のみ入力可能となります。(Formula1~Formula2の間)

入力規則の種類一覧(Type)

入力規則の種類(Type)は下記のものがあります。

名前説明
xlValidateCustom7データは、任意の式を使用して検証されます
xlValidateDate4データ値
xlValidateDecimal2数値
xlValidateInputOnly0ユーザーが値を変更した場合にのみ検証が行われます
xlValidateList3指定された一覧に値が存在する必要があります
xlValidateTextLength6テキストの長さ
xlValidateTime5時刻値
xlValidateWholeNumber1数値全体
入力規則の種類(Type)

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらってはいかがでしょう?
VBAの作成依頼はこちらから

《VBA中級者向けの本》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。

created by Rinker
技術評論社
¥3,608 (2023/06/06 16:32:04時点 Amazon調べ-詳細)

他の「VBA」の記事はこちらからどうぞ

VBA

Posted by やろまい