セルに入力規則を設定する

example(VBA)

Sub Main()
  Dim d As Range
  Set d = Range("A1")
  Range("A1:A7").Validation.Delete
  d.Offset(0).Validation.Add xlValidateCustom, xlValidAlertStop, xlBetween, "=SUM(B1:B3)= A1"
  d.Offset(1).Validation.Add xlValidateDate, xlValidAlertStop,  xlBetween, "1/1/2012", "12/31/2012"
  d.Offset(2).Validation.Add xlValidateDecimal, xlValidAlertStop, xlBetween, "1", "10"
  d.Offset(3).Validation.Add xlValidateInputOnly, xlValidAlertStop, xlBetween
  d.Offset(4).Validation.Add xlValidateList, xlValidAlertStop, xlBetween, "a,b,c"
  d.Offset(5).Validation.Add xlValidateTextLength, xlValidAlertStop, xlBetween, "1", "3"
  d.Offset(6).Validation.Add xlValidateTime, xlValidAlertStop, xlBetween, "10:00", "12:00"
  
  Dim valObj As Validation
  'オブジェクトの取得
  Set valObj = Range("A3").Validation
  '既存の入力規則を変更
  Call valObj.Modify(AlertStyle:=xlValidAlertInformation)
  '主要な設定
  With valObj
    .ErrorMessage = "1から10間での間で入力してください"
    .ErrorTitle = "入力エラー"
    .IgnoreBlank = True
    .IMEMode = xlIMEModeAlpha
    .InCellDropdown = True
    .InputMessage = .ErrorMessage
    .InputTitle = "入力のお願い"
    .ShowError = False
    .ShowInput = True
  End With
End Sub

入力規則を新規で適用し、Validationオブジェクトを作成するにはAddメゾットを使用します。ValidationのAddメゾットの引数は以下の5つ。

  1. Type:

    XlDVType クラスの定数を使用して入力規則の種類を指定します。(必須)

  2. AlertStyle:

    XlDVAlertStyle クラスの定数を使用して、エラーのスタイルを設定します。

  3. Operator:

    入力規則での条件式の最初の部分を指定します。

  4. Formula1:

    XlFormatConditionOperator クラスの定数を使用して、入力規則の演算子を指定します。

  5. Formula2:

    入力規則での条件式の 2 番目の部分を指定します。引数 Operator が xlBetween または xlNotBetween の場合無視されます。

XlDVTypeクラスの定数

定数

エクセルで設定時の入力値の種類

定数

xlValidateCustom

エクセルで設定時の入力値の種類

ユーザー設定

定数

xlValidateDate

エクセルで設定時の入力値の種類

日付

定数

lValidateDecimal

エクセルで設定時の入力値の種類

小数点数

定数

xlValidateInputOnly

エクセルで設定時の入力値の種類

全ての値

定数

xlValidateList

エクセルで設定時の入力値の種類

リスト

定数

xlValidateTextLength

エクセルで設定時の入力値の種類

文字列(長さ指定)

定数

xlValidateTime

エクセルで設定時の入力値の種類

時刻

定数

xlValidateWholeNumber

エクセルで設定時の入力値の種類

整数


Validationオブジェクトの主なプロパティ

プロパティ

設定する項目

プロパティ

ErrorMessage/InputMessage

設定する項目

入力/エラー時のメッセージを設定します。

プロパティ

ErrorTitle/InputTitle

設定する項目

入力/エラー時のメッセージのタイトルを設定します。

プロパティ

ShowError/ShowInput

設定する項目

入力/エラー時のメッセージを表示させるかを設定します。

プロパティ

IgnoreBlank

設定する項目

空白の許可

プロパティ

InCellDropdown

設定する項目

ドロップダウンリストでの選択が可能かを設定します。入力規則がリストの場合のみ設定が有効です。