【VBA入門】入力規制のエラースタイルを再設定する方法|警告・情報メッセージの活用術

Excel VBAでは、セルに入力される値に対して制限を設ける「入力規制(データバリデーション)」機能が用意されています。その際、入力ミスに対してどのようにユーザーに知らせるかを、3種類のエラースタイルで制御できます。

この記事では、入力規則のエラースタイル(停止、警告、情報)を設定・変更する方法について、具体的なコードとともに解説いたします。


目次

入力規制のエラースタイルとは

入力規制時に指定できる AlertStyle は、次の3種類から選べます。

AlertStyle意味入力の可否ダイアログのボタン
xlValidAlertStop停止(デフォルト)不可OKのみ(必ず再入力)
xlValidAlertWarning警告はい・いいえ・キャンセル
xlValidAlertInformation情報OKのみ(そのまま続行)

警告メッセージ付きのリスト入力規制を設定する

以下のコードでは、セル A2 に対して「リスト C2:C6 の値のみを入力可能」とし、エラースタイルを xlValidAlertWarning に設定しています。

With Range("A2").Validation
    .Delete
    .Add Type:=xlValidateList, _
         AlertStyle:=xlValidAlertWarning, _
         Formula1:="=C2:C6"
    .ErrorTitle = "リスト外の値を入力"
    .ErrorMessage = "リスト外の値を入力しようとしています。このまま入力を続ける場合は「はい」を押してください。"
End With

この設定では、リスト外の値を入力しても、「はい」「いいえ」「キャンセル」の選択肢を表示する警告ダイアログが表示され、入力自体は可能です。


エラースタイルを後から「情報」スタイルに変更する

一度設定した入力規則の AlertStyle を後から変更することも可能です。以下のコードでは、警告スタイルを情報スタイルに変更しています。

With Range("A2").Validation
    .Modify AlertStyle:=xlValidAlertInformation
    .ErrorMessage = "リスト外の値を入力しました"
End With

xlValidAlertInformation に変更することで、ダイアログは「OK」ボタンのみとなり、ユーザーへの通知は行われるものの、入力はそのまま受け付けられます。


注意点

  • .Modify メソッドは、Validation オブジェクトが既に設定済みである必要があります。
  • AlertStyle を変更するだけでなく、ErrorMessage なども必要に応じて書き換えましょう。
  • ユーザーの操作性や誤入力リスクを考慮して、適切なスタイルを選ぶことが重要です。

まとめ

VBAを使った入力規則設定において、エラースタイルを活用することで、入力ミスに対する柔軟な対応が可能になります。

スタイル処理メリット
停止(Stop)入力を拒否厳密な制御に最適
警告(Warning)続行確認可能柔軟に対応
情報(Information)通知のみユーザーに気付かせる目的で使用

ユーザーの入力行動を適切に誘導するために、場面に応じたスタイル設定を行いましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次