Home » Excel VBA Rangeオブジェクト » 入力規則・Validation » ValidationのErrorMessageを設定する

動作検証バージョン:Windows版Excel(バージョン1903 ビルド11425.20202)

「Excel VB 入力規則 Validation ErrorMessage」
「vba 無効なデータが入力されたら ErrorMessage」
といった検索キーワードでのアクセスに気が付きました。

Excel VBAで、入力規則を表すValidationオブジェクトのErrorMessageプロパティを設定する具体例を、

探していらした方による検索でしょう。

[スポンサードリンク]

ValidationのErrorMessageを設定するサンプルマクロ

以下のSubプロシージャを参考にしてください。
Sub ValidationのErrorMesstageを設定する()
 With Range("A1").Validation
  .Delete
  .Add _
    Type:=xlValidateWholeNumber, _
    Formula1:=1, Formula2:=5
  .ErrorMessage = "1から5の整数を入力してください。"
 End With
End Sub

このSubプロシージャを実行すると、アクティブブックのアクティブシートA1セルに、1から5までの整数だけが入力でき、

該当しないデータが入力された場合に
「1から5の整数を入力してください。」
とエラーメッセージの表示される入力規則が設定されます。

ValidationオブジェクトのAddメソッドは何も返さない

他の(コレクション)オブジェクトのAddメソッドに慣れている方は、ちょっと注意が必要かもしれません。

拙著『いちばんやさしいExcel VBAの教本』のLesson 52「プロパティは2種類あることを知っておきましょう」で、メソッドについて以下のように書きました。

プロパティが2種類あるのに対し、メソッドの場合は、「何も返さないメソッド」「単なるデータを返すメソッド」「オブジェクトを返すメソッド」の3種類に分類できます。

ValidationオブジェクトのAddメソッドは、この中の「何も返さないメソッド」に該当します。

VBAでは、Addという名前のメソッドはコレクションが持ち、実行すると単独のオブジェクトを返すのが一般的です(3種類の中の「オブジェクトを返すメソッド」に該当)。

こういったコレクションのAddメソッドと、この記事でご紹介しているValidation.Addメソッドは、かなり異なるため注意が必要です。

もしも、ValidationオブジェクトのAddメソッドが、追加された入力規則を表すValidationオブジェクトを返すのであれば、
  Range("A1").Validation.Add(引数指定).ErrorMessage = "エラーメッセージ"
のような書き方もできたはずですが、そうではないため上記Subプロシージャのようなコードにする必要があります。

最終更新日時:2019-04-16 15:49

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 入力規則・Validation » ValidationのErrorMessageを設定する

「入力規則・Validation」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.