よく目にするアカウント登録フォームを題材にして、VBAで実現できることを体験すると共に、基本的な記述方法について学んでいきましょう。
※Excelファイルダウンロード
登録フォーム
ご使用は自己責任で宜しくお願い致します。
それほど複雑なフォーマットではないので、不安な方はご自身で作成してください。
前回の演習解説
前回最後に出題した演習の解答例です。
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 30 31 32 33 34 35 36 37 38 39 40 41 42 | Sub practice3_1() Dim fname As String Dim lname As String Dim mf As String Dim pass As String Dim repass As String Dim chkerr As Boolean lname = Range( "D3" ).Value fname = Range( "G3" ).Value mf = Range( "D6" ).Value pass = Range( "D9" ).Value repass = Range( "D12" ).Value Range( "B1" ).Value = "" Range( "B7" ).Value = "" If lname = "" Or fname = "" Then Range( "B1" ).Value = "※入力されていません" Range( "B1" ).Font.Color = vbRed chkerr = True End If If pass <> repass Then Range( "B7" ).Value = "※パスワードが一致しません" Range( "B7" ).Font.Color = vbRed chkerr = True End If If pass = "" Or repass = "" Then Range( "B7" ).Value = "※入力されていません" Range( "B7" ).Font.Color = vbRed chkerr = True End If If chkerr = True Then Exit Sub End If MsgBox "氏名:" & lname & " " & fname & vbCrLf & "性別:" & mf End Sub |
単純に、氏名のチェックを行っているIfステートメントを流用すればすぐに出来てしまうかと思います。順番は「※パスワードが一致しません」のIfステートメントの後に記述するのがミソです。順番が逆になると、どちらか一方に入力されていた場合のアラートが「※パスワードが一致しません」になってしまいます。
パスワードに入力ポリシーを実装してみよう!
■ 問題
パスワードが8文字よりも短い場合、「※パスワードは8文字以上で入力してください」とアラート表示するようにマクロを修正しましょう。
※その他の項目に関しては、今回は使用しません。
■ 演習
全ての項目が正常値だった場合に、下図のようにメッセージボックスを出力するようマクロを修正しましょう。