よく目にするアカウント登録フォームを題材にして、VBAで実現できることを体験すると共に、基本的な記述方法について学んでいきましょう。
※Excelファイルダウンロード
登録フォーム
ご使用は自己責任で宜しくお願い致します。
それほど複雑なフォーマットではないので、不安な方はご自身で作成してください。
前回の演習解説
前回最後に出題した演習の解答例です。
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文字以上で入力してください」とアラート表示するようにマクロを修正しましょう。
※その他の項目に関しては、今回は使用しません。
■ 演習
全ての項目が正常値だった場合に、下図のようにメッセージボックスを出力するようマクロを修正しましょう。