Excel VBA Validationはセルに入力規則を設定するために使用する

 

Excel VBA Validationオブジェクトは、セルに入力規則を設定するために使用します。ユーザーがセルに入力する値を制限したり、特定の形式にできます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA Validationを利用

以下のようなシーンで利用されます。

・特定の範囲に入力可能な値を制限したいとき

・セルに入力されるデータの一貫性を確保したいとき

・入力ミスを防ぎたいとき

 

Excel VBA Validationを利用|使い方とポイント

使い方

Range("セル範囲").Validation.Add(Type, AlertStyle, Operator, Formula1, Formula2)

・Type: 入力規則の種類(例:xlValidateList, xlValidateWholeNumber, xlValidateDecimalなど)

・AlertStyle: エラーアラートのスタイル(例:xlValidAlertStop, xlValidAlertWarning, xlValidAlertInformation)

・Operator: 演算子(例:xlBetween, xlNotBetween, xlEqual, xlNotEqualなど)

・Formula1, Formula2: 入力規則の基準となる値や数式

 

Type

入力規則の種類を指定します。

・xlValidateList: リストから選択
・xlValidateWholeNumber: 整数値
・xlValidateDecimal: 小数点を含む数値
・xlValidateDate: 日付
・xlValidateTime: 時間
・xlValidateTextLength: テキストの長さ
・xlValidateCustom: カスタム(数式を使用)

AlertStyle

エラーが発生した場合の警告スタイルを指定します。

・xlValidAlertStop: エラーを表示して入力を止める
・xlValidAlertWarning: 警告を表示
・xlValidAlertInformation: 情報を表示

Operator

値の比較方法を指定します。

・xlBetween: 指定した範囲内
・xlNotBetween: 指定した範囲外
・xlEqual: 等しい
・xlNotEqual: 等しくない
・xlGreater: より大きい
・xlLess: より小さい
・xlGreaterEqual: 以上
・xlLessEqual: 以下

Formula1, Formula2

入力規則の基準となる値や数式を指定します。Formula2はOperatorが範囲を指定する場合(例えば、xlBetweenやxlNotBetween)に使用します。

 

ポイント

・既存の入力規則があるセルに新しい入力規則を設定する場合、最初に`Delete`メソッドを使用して既存の規則を削除する必要があります。

・入力規則を設定するセル範囲が適切に選択されていることを確認してください。

 

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!
👉 VBAエキスパート資格のメリットを詳しく知る

 

Excel VBA Validationのサンプルコード

Option Explicit

Sub AddValidation()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' A1:A10のセルにリストから選択する入力規則を追加
    With ws.Range("A1:A10").Validation
        .Delete ' 既存の入力規則を削除
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="Option1,Option2,Option3"
        .IgnoreBlank = True
        .InCellDropdown = True
        .ShowInput = True
        .ShowError = True
    End With
End Sub

 

解説

・Set ws = ThisWorkbook.Sheets("Sheet1")
Sheet1を対象シートとして設定します。

・With ws.Range("A1:A10").Validation
A1:A10セル範囲に対して入力規則を設定します。

・.Delete
既存の入力規則を削除します。これにより、同じセル範囲に新しい入力規則を設定する準備が整います。

・.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Option1,Option2,Option3
リストから選択する入力規則を追加します。`Formula1`にはリストの項目をカンマ区切りで指定します。

・.IgnoreBlank = True
空白セルを無視する設定です。

・.InCellDropdown = True
セル内にドロップダウンリストを表示する設定です。

・.ShowInput = True
入力メッセージを表示する設定です。

・.ShowError = True
エラーメッセージを表示する設定です。

これで、ユーザーはセル範囲内で指定されたリストからのみ選択できるようになります。これで、入力ミスを防ぎ、データの一貫性を保てます。

Excel VBAの資格でキャリアアップ!
就活や転職で有利になるVBAエキスパート資格を解説!