【MOS】【Microsoft Office Excel】【マクロ/VBA】ユーザーフォームの入力値検証
- 2014/12/03 16:37
- ユーザーフォーム
- 67
ユーザーフォームの入力値を検証します。
テキストボックスに入れた値を検証する
オブジェクト名が「Input_Name」というテキストボックスの入力値を検証します。
無記入かどうかの検証
無記入の場合はメッセージボックスを表示する
'//入力検証 If Len(Input_Name.Value) = 0 Then '//未入力の場合 MsgBox "名前が未入力です。" '//メッセージを表示 Input_Name.SetFocus '//テキストボックスにフォーカスする Else ~実行したい処理~ End If
入力された文字数を検証する
30文字以下の場合はメッセージボックスを表示する
'//入力検証 If Len(Input_Name.Value) < 30 Then '//未入力の場合 MsgBox "名前は30文字位内で入力してください。" '//メッセージを表示 Input_Name.SetFocus '//テキストボックスにフォーカスする Else ~実行したい処理~ End If
既に登録されているかどうか検証
既に登録されている(同シートに同じ文字列が存在する)場合はメッセージボックスを表示する。
'//追加したい名前を検索する Dim Past_Name As Range Set Past_Name = Cells.Find(What:=Input_Name.Value, LookIn:=xlValues, LookAt:=xlWhole) '//追加したい名前が既に存在したらエラー吐く If Not Past_Name Is Nothing Then MsgBox "この名前は既に登録されています。" '//メッセージを表示 Else ~実行したい処理~ End If
メールアドレスの形式か検証する
オブジェクト名が「Input_Mail」というテキストボックスに入力されたメールアドレスがメールアドレスの形式になっているかを確認します。
'//メールアドレスの形式をチェックする設定 Dim Mail_Address_Check As RegExp Set Mail_Address_Check = New RegExp '//メールアドレスの形式チェック用正規表現 Mail_Address_Check.Pattern = "[\w\.\-]+@[\w\.-]+\.[a-zA-Z]{2,6}$" If Mail_Address_Check.TEST(Input_Mail.Value) = False Then MsgBox "メールアドレスの形式が不正です。" '//メッセージボックスの表示 Input_Mail.SetFocus '//メールアドレス入力欄にフォーカス Else ~実行したい処理~ End If