Excel VBA セルの入力規則を操作する Validationオブジェクト

スポンサーリンク

Validation【バリディーション】プロパティ

セルの入力規則を表すValidation【バリディーション】オブジェクトを取得するには、Range【レンジ】オブジェクトのValidation【バリディーション】プロパティを使用します。

Validation【バリディーション】プロパティの書式と設定値の説明

オブジェクト.Validation
【戻り値】Validation【バリディーション】オブジェクト

  • オブジェクト(必須)
    入力規則を設定するセルやセル範囲をRange【レンジ】オブジェクトで指定します。

Validation【バリディーション】オブジェクトのメソッドやプロパティ一覧

メソッド・プロパティ 内容
Addメソッド
【アド】
入力規則を追加します。
Deleteメソッド
【デリート】
入力規則を削除します。
Modifyメソッド
【モディファイ】
入力規則を変更します。
ErrorMessageプロパティ
【エラーメッセージ】
エラーメッセージを取得または設定します。
ErrorTitleプロパティ
【エラータイトル】
エラーメッセージのタイトルを取得または設定します。
InputMessageプロパティ
【インプットメッセージ】
入力時のメッセージを取得または設定します。
InputTitleプロパティ
【インプットタイトル】
入力時のメッセージのタイトルの取得または設定します。
IMEModeプロパティ
【アイエムイーモード】
日本語の入力規則の内容を設定します。

Add【アド】 メソッド

セルまたは、セル範囲に入力規則を追加するには、Validation【バリデーション】オブジェクトの
Add【アド】メソッドを使用します。Validation【バリデーション】には確認や検査という意味があります。

Add メソッドの書式と設定値(引数)の説明

[]内は省略可能です。

オブジェクト
.Add(Type[,AlertStyle,Operator,Formula1,Formula2])

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • Type【タイプ】(必須)
    入力規則の種類をXlDVType 列挙型の定数で指定します。
XlDVType 列挙の定数
定数 内容
xlValidateInputOnly
【インプットオンリー】
0 【すべての値】
xlValidateWholeNumber
【ホウルナンバー】
1 【整数値】
引数 Formula1 と引数 Formula2 の
どちらかを指定する必要があります。
両方を指定することもできます。
xlValidateDecimal
【デシマル】
2 【小数含む数値】
引数 Formula1 と引数 Formula2 の
どちらかを指定する必要があります。
両方を指定することもできます。
xlValidateList
【リスト】
3 【リストから選択します。】
引数 Formula1 を必ず指定します。
引数 Formula1 には
コンマで区切った値の一覧または
この一覧へのシート参照を指定する
必要があります。
xlValidateDate
【デイト】
4 【日付値】
引数 Formula1 と引数 Formula2 の
どちらかを指定する必要があります。
両方を指定することもできます。
xlValidateTime
【タイム】
5 【時刻値】
引数 Formula1 と引数 Formula2 の
どちらかを指定する必要があります。
両方を指定することもできます。
xlValidateTextLength
【テキストレングス】
6 【テキストの長さ】
引数 Formula1 と引数 Formula2 の
どちらかを指定する必要があります。
両方を指定することもできます。
xlValidateCustom
【カスタム】
7 【ユーザー定義】
引数 Formula1 を必ず指定します。
引数 Formula1 には
データ入力が有効な場合は True
データ入力が無効な場合は False
に評価される式を
指定する必要があります。

  • AlertStyle【アラートスタイル】(省略可)
    入力規則でのエラーのスタイルを指定します。XlDVAlertStyle 列挙型の定数で指定します。
XlDVAlertStyle 列挙型の定数
定数 内容
xlValidAlertStop【ストップ】 1 【停止アイコン】(既定値)
無効な値は完全に入力を
拒否します。
xlValidAlertWarning【ワーニング】 2 【警告アイコン】
「はい」を選択した場合は
入力を許可します。
xlValidAlertInformation【インフォメーション】 3 【情報アイコン】
「OK」を選択した場合は
入力を許可します。

  • Operator【オペレーター】(省略可)
    データ入力規則の演算子を指定します。
    XlFormatConditionOperator 列挙型の定数で指定します。
XlFormatConditionOperator列挙型の定数
定数 内容
xlBetween【ビットイン】 1 値と値の間
xlNotBetween【ノットビットイン】 2 値と値の間以外
xlEqual【イコール】 3 値と等しい
xlNotEqual【ノットイコール】 4 値と等しくない
xlGreater【グレーター】 5 値より大きい
xlLess【レス】 6 値より小さい
xlGreaterEqual【グレーターイコール】 7 値以上
xlLessEqual【レスイコール】 8 値以下

  • Formula1【フォミュラーワン】(省略可)
    データ入力規則での条件式の最初の部分を指定します。
  • Formula2【フォミュラーツゥ】(省略可)
    引数 Operator が xlBetween または xlNotBetween の場合
    データ入力規則の 2 番目の部分を指定します 。

    これ以外の場合、この引数は無視されます。

Delete【デリート】 メソッド

セルの入力規則を削除するには、Validation【バリデーション】オブジェクトのDelete 【デリート】メソッドを使用します。

Delete メソッドの書式と設定値の説明

オブジェクト.Delete

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
    ※入力規則を設定する場合にすでに入力規則が設定されているとエラーになるので、入力規則を設定する範囲に対してDelete【デリート】メソッドを実行します。

Modify 【モディファイ】メソッド

入力規則が設定されている範囲の入力規則を変更するには、Validation【バリデーション】オブジェクトのModify 【モディファイ】メソッドを使用します。Modify 【モディファイ】は修正するという意味があります。

Modify 【モディファイ】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Modify([Type, AlertStyle, Operator, Formula1, Formula2])

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • Type【タイプ】(省略可)
    入力規則の種類を表す上記のXlDVType 列挙型の定数の値を指定します。
  • AlertStyle【アラートスタイル】(省略可)
    入力規則のメッセージのスタイルを表す上記のXlDVAlertStyle 列挙型の定数の値を指定します。
  • Operator【オペレーター】(省略可)
    データ入力規則の演算子を表す 上記のXlFormatConditionOperator 列挙型の定数の値を指定します。
  • Formula1【フォミュラーワン】(省略可)
    データ入力規則での条件式の最初の部分を指定します。
  • Formula2【フォミュラツゥ】(省略可)
    引数Operator が xlBetween または xlNotBetween の場合
    データの入力規則の 2 番目の部分になります。

※変更する部分の引数を指定します。

ErrorMessage【エラーメッセージ】 プロパティ

入力規則でのエラー メッセージを取得または設定するには、Validation【バリデーション】オブジェクトのErrorMessage【エラーメッセージ】 プロパティを使用します。値の取得および設定が可能です。文字列型 (String) の値を使用します。

ErrorMessage【エラーメッセージ】 プロパティの書式と設定値の説明

【取得】
オブジェクト.ErrorMessage
【戻り値】文字列型(String)
【設定】
オブジェクト.ErrorMessage = 設定値

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • 設定値(必須)
    表示するメッセージを文字列(String)型の値で指定します。

※設定しない場合は「この値は、このセルに定義されているデータ入力規則を満たしていません」というメッセージが表示されます。

ErrorTitle 【エラータイトル】プロパティ

入力規則で発生するエラーでのダイアログ ボックスのタイトルを取得または設定するにはValidation【バリデーション】オブジェクトのErrorTitle 【エラータイトル】プロパティを使用します。

ErrorTitle 【エラータイトル】 プロパティの書式と設定値の説明

【取得】
オブジェクト.ErrorTitle
【戻り値】文字列型(String)
【設定】
オブジェクト.ErrorTitle = 設定値

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • 設定値(必須)
    表示するタイトルを文字列(String)型の値で指定します。

※設定しない場合は「Microsoft Excel」と表示されます。

InputMessage 【インプットメッセージ】プロパティ

入力規則での入力メッセージを取得または設定するには、Validation【バリデーション】オブジェクトのInputMessage 【インプットメッセージ】プロパティを使用します。

InputMessage 【インプットメッセージ】 プロパティの書式と設定値の説明

【取得】
オブジェクト.InputMessage
【戻り値】文字列型(String)
【設定】
オブジェクト.InputMessage = 設定値

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • 設定値(必須)
    入力時のメッセージを文字列(String)型の値で指定します。

※設定しない場合は何も表示されません。

InputTitle【インプットタイトル】プロパティ

入力規則ダイアログ ボックスのタイトルを設定するには、Validation【バリデーション】オブジェクトのInputTitle【インプットタイトル】プロパティを使用します。

InputTitle【インプットタイトル】プロパティの書式と設定値の説明

【取得】
オブジェクト.InputTitle
【戻り値】文字列型(String)
【設定】
オブジェクト.InputTitle = 設定値

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • 設定値(必須)
    入力規則ダイアログ ボックスのタイトルを文字列(String)型の値で指定します。

※設定しない場合は何も表示されません。

IMEMode 【アイエムイーモード】プロパティ

日本語の入力規則の内容を設定するにはValidation【バリデーション】オブジェクトのIMEMode 【アイエムイーモード】プロパティを使用します。

IMEMode 【アイエムイーモード】プロパティの書式と設定値の説明

【取得】
オブジェクト.IMEMode
【戻り値】長整数型(Long)
【設定】
オブジェクト.IMEMode = 定数

  • オブジェクト(必須)
    Range【レンジ】オブジェクトのValidation【バリデーション】プロパティで取得したValidation【バリデーション】オブジェクトを指定します。
  • 定数(必須)
    XlIMEMode 列挙型の定数を指定します。
XlIMEMode 列挙型の定数
定数 内容
xlIMEModeNoControl【ノーコントロール】 0 コントロールなし
xlIMEModeOn【オン】 1 モード オン
xlIMEModeOff【オフ】 2 オフ (英語モード)
xlIMEModeDisable【ディセイブル】 3 無効
xlIMEModeHiragana【ヒラガナ】 4 ひらがな
xlIMEModeKatakana【カタカナ】 5 カタカナ
xlIMEModeKatakanaHalf【カタカナハーフ】 6 半角カタカナ
xlIMEModeAlphaFull【アルファーフル】 7 全角英数字
xlIMEModeAlpha【アルファ】 8 半角英数字

A列に本日以降の日付しか入力できない規則を設定するコード例

Sub 入力規則()
With Range("A:A").Validation
.Delete
.Add _ 
 Type:=xlValidateDate, _ 
 Operator:=xlGreaterEqual, _
 Formula1:=Date
.ErrorTitle = "入力エラー"
.ErrorMessage = "本日以降日付を入力してください。"
.InputTitle = "入力規則"
.InputMessage = "本日以降の日付を入力してください。"
End With
End Sub

※Add【アド】メソッドで入力規則を追加する前にDelete【デリート】メソッドを必ず使用します。


Sheet2のリストを参照するコード例

Sub 別シートリスト参照()
With Range("A:A").Validation
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="=Sheet2!" & Range("$A$1", Cells(Rows.Count, 1)).Address
End With
End Sub

※リストの参照先のセルは絶対参照で指定します。


以上で、入力規則についての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告