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

 

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

 

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

 

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 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エキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。