【VBA入門】入力ミスを防ぐ!規則外の値を警告するメッセージボックスの設定方法

Excelでは、セルに誤った値が入力されるのを防ぐために、「入力規則(データバリデーション)」機能を使って、値の範囲や種類を制限することができます。

この記事では、VBAを使って規則外の値が入力された際に警告メッセージを表示する方法について、実用的なサンプルコードと併せて詳しくご紹介いたします。


目次

VBAで入力エラーを通知する基本コード

以下のコードは、列「D」に対して「2025年1月1日以降の日付のみ」を入力可能とし、もし条件に合わない値が入力された場合には警告を表示する設定です。

Sub 入力規則に違反したときに警告を出す()

    With Worksheets("データ入力").Range("D:D").Validation
        ' 既存の入力規則を削除
        .Delete

        ' 入力制限:日付(2025年1月1日以降)
        .Add _
            Type:=xlValidateDate, _
            Operator:=xlGreaterEqual, _
            Formula1:="2025/1/1"

        ' エラー時に表示する警告メッセージ
        .ErrorTitle = "入力エラー"
        .ErrorMessage = "2025年1月1日以降の日付を入力してください。"
        .ShowError = True
    End With

End Sub

各プロパティの役割

プロパティ名内容
.Delete既存の入力規則を削除
.Add新しい入力規則の追加
Type入力値の種類(ここでは日付)
Operator比較演算子(ここでは「以上」)
Formula1入力の基準値
.ErrorTitleエラーメッセージのタイトル
.ErrorMessageエラーメッセージの本文
.ShowErrorエラーメッセージを表示するかどうか(True で表示)

使用例:入力規則+警告の活用場面

シナリオ入力規則警告メッセージ例
出荷日入力フォーム本日以降の日付「本日以降の日付を入力してください」
社員番号欄数値4桁のみ「4桁の社員番号を入力してください」
見積金額入力1〜100万円の範囲「金額は1万円以上、100万円以下で入力」

補足:ポップアップでヒントも併用可能

入力規則の .InputMessage プロパティを使えば、入力前に案内メッセージを表示することもできます。エラーと併用すれば、入力支援としてより親切です。

.InputTitle = "日付の入力"
.InputMessage = "2025年1月1日以降の日付を入力してください。"

まとめ

項目説明
規則設定.Validation.Add を使用し、Type や Operator を指定
エラータイトルの表示.ErrorTitle で警告ウィンドウのタイトルを設定
エラーメッセージの表示.ErrorMessage で警告の内容を指定
メッセージ表示ON/OFF.ShowError = True によって表示を有効化
入力前のガイド表示.InputMessage によってヒント表示も可能
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次