「Excel VB 入力規則 Validation ErrorMessage」
「vba 無効なデータが入力されたら ErrorMessage」
といった検索キーワードでのアクセスに気が付きました。
Excel VBAで、入力規則を表すValidationオブジェクトのErrorMessageプロパティを設定する具体例を、
探していらした方による検索でしょう。
ValidationのErrorMessageを設定するサンプルマクロ
以下のSubプロシージャを参考にしてください。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を設定する