今回はEXCELブックに設定した入力規則(リスト)についてです。
通常、リストを設定すると、リストに存在する値以外を入力するとエラーダイアログが表示されます。
このエラーダイアログ、VBAのChangeイベントよりも先に表示されてしまうんですよね。
仕事で組んだVBAの邪魔者となってしまいました。
そこで、今回はこのエラーダイアログを表示させないようにするというのがゴールです。
ちなみに、ChatGPTに対処法を聞いて見たら、エラーダイアログの表示は制御できないって回答でした。まだまだだな(´_ゝ`)
GUIで設定する方法
メニュー>データ>データの入力規則 で↓のダイアログを表示させ
「エラー メッセージ」タブをクリックしたら
「無効なデータが入力されたらエラー メッセージを表示する(S)」の☑を外すだけ!
案外簡単でした。
VBAで設定する方法
こちらも超簡単でした。以下のように実装すれば大丈夫です。
With Range("A1").Validation
.Add Type:=xlValidateList, Formula1:="=$B$1:$B$100"
.ShowError = False ' <- ココです
End With
蛇足
ちなみに、このダイアログを消すきっかけとなった問題は
Excel2019だと、リスト内に存在する文字を部分的に入力してEnterを叩いても
リストから該当する値を曖昧検索してくれなかった。という挙動です。
Office365のExcelでは勝手に候補からピックアップしてくれます。
この挙動の差を埋める為に、VBAでリストから曖昧HITする値を取得して
セルに埋め込むという処理を実行する中で、エラーダイアログが邪魔になりました。
Excelも地味に進化しているんですね。。。
ではまた!