本記事では「フォーム上で未入力の場合にエラーメッセージを表示する方法」について解説していきます。
そして、今回は下のようなユーザーフォームを使って解説していきます。
※上のフォーム上にあるテキストボックスはラベルと同名のオブジェクト名としています。(例えば、「氏名」欄のテキストボックスの場合は、オブジェクト名は”氏名”)
ではさっそく解説していきます。
フォーム上で未入力の場合にエラーメッセージを表示する
今回は「フォーム上のテキストボックスに未入力があった場合、未入力の項目名を表示する」という内容でやっていきます。
下のコードの流れは次の通りです。
1.未入力のテキストボックスのオブジェクト名を配列に格納する。
2.上の配列に1つでもオブジェクト名が格納されていた(未入力がある)場合、エラー表示し、Subプロシージャを抜ける。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Private Sub CommandButton1_Click() Dim errorBoxs() As Variant ReDim errorBoxs(1 To 3) As Variant Dim boxName As Variant Dim boxNames As Variant boxNames = Array("氏名", "年齢", "電話番号") Dim tmp As Long ' --- フォーム上の未入力のテキストボックスの名前を配列に格納する For Each boxName In boxNames If Controls(boxName).Text = "" Then tmp = tmp + 1 errorBoxs(tmp) = boxName End If Next '1つでも未入力がある場合のエラー表示処理 If Not errorBoxs(1) = "" Then ReDim Preserve errorBoxs(1 To tmp) As Variant MsgBox Join(errorBoxs, ",") & "が入力されていません", vbExclamation Exit Sub Else MsgBox "正常に登録されました" End If End Sub |
フォーム上のすべてのテキストボックスが未入力の場合は下のようにエラー表示されます。(試しに色々なパターンで未入力エラーを出してみてください)
もちろん、逆にすべて入力されている場合は下のような表示になります。
〇おすすめのVBA参考書ランキング!
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク