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

スポンサーリンク
スポンサーリンク

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

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

以上のメソッド・プロパティについて詳細説明をします。


Add【アド】 メソッド

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

Validation.Add メソッドの書式

[]内は省略可能です。
セル範囲.
Validation.Add(Type[,AlertStyle,Operator,Formula1,Formula2])


設定値(引数)の説明

  • セル範囲(必須)
    入力規則を追加する範囲をRangeオブジェクトで指定します。
  • 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 メソッドの書式

セル範囲.Validation.Delete


設定値の説明

  • セル範囲(必須)
    Rangeオブジェクトを指定します。
    入力規則を削除したいセル範囲や、これから入力規則を設定する範囲を
    指定します。
    ※入力規則を設定する場合にすでに入力規則が設定されていると
    エラーになるので、
    入力規則を設定する範囲に対してDelete【デリート】メソッドを実行します。

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

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

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

[]内は省略可能です。
セル範囲.
Validation.Modify([Type, AlertStyle, Operator, Formula1, Formula2])


設定値(引数)の説明

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

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


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

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

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

【取得】
セル範囲.
Validation.ErrorMessage

【戻り値】文字列型(String)
【設定】
セル範囲.
Validation.ErrorMessage = 設定値


設定値の説明

  • セル範囲(必須)
    入力規則が設定されているセル範囲をRangeオブジェクトで指定します。
  • 設定値(必須)
    表示するメッセージを文字列(String)型の値で指定します。

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

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

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

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

【取得】
セル範囲.
Validation.ErrorTitle

【戻り値】文字列型(String)
【設定】
セル範囲.
Validation.ErrorTitle = 設定値


設定値の説明

  • セル範囲(必須)
    入力規則が設定されているセル範囲をRangeオブジェクトで指定します。
  • 設定値(必須)
    表示するタイトルを文字列(String)型の値で指定します。

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

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

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

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

【取得】
セル範囲.
Validation.InputMessage

【戻り値】文字列型(String)
【設定】
セル範囲.
Validation.InputMessage = 設定値


設定値の説明

  • セル範囲(必須)
    入力規則が設定されているセル範囲をRangeオブジェクトで指定します。
  • 設定値(必須)
    入力時のメッセージを文字列(String)型の値で指定します。

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

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

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

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

【取得】
セル範囲.
Validation.InputTitle

【戻り値】文字列型(String)
【設定】
セル範囲.
Validation.InputTitle = 設定値


設定値の説明

  • セル範囲(必須)
    入力規則が設定されているセル範囲をRangeオブジェクトで指定します。
  • 設定値(必須)
    入力規則ダイアログ ボックスのタイトルを
    文字列(String)型の値で指定します。

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

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

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

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

【取得】
セル範囲.
Validation.IMEMode

【戻り値】長整数型(Long)
【設定】
セル範囲.
Validation.IMEMode = 定数


設定値の説明

  • セル範囲(必須)
    入力規則が設定されているセル範囲をRangeオブジェクトで指定します。
  • 定数(必須)
    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

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


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

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク