テキストボックスの文字チェック方法
Excel VBA ユーザーフォームのテキストボックスの文字チェック方法
Excel VBA ユーザーフォームのテキストボックスに入力された文字を様々な条件でチェックする方法について説明します。
入力内容の種類チェック
以下のコード例は、テキストボックスに入力された文字が数字のみ、英字のみ、数字と英字の混合のみ、など、指定した条件に合致しているかどうかをチェックする例です。
VBA
' テキストボックスのオブジェクト名
Dim txtBox As TextBox
' チェック対象となるテキストボックスを設定
Set txtBox = UserForm1.txtBox1 ' ※ テキストボックスの名前を適宜変更してください
' 入力された文字列を取得
Dim inputStr As String
inputStr = txtBox.Value
' チェック条件
Select Case Val(Type:=vbTextCompare)
Case 1 ' 数字のみ
If Not IsNumeric(inputStr) Then
MsgBox "数字のみ入力してください。"
txtBox.Value = ""
Exit Select
End If
Case 2 ' 英字のみ
If Not IsValidStr(inputStr, vbCharTypeLetter) Then
MsgBox "英字のみ入力してください。"
txtBox.Value = ""
Exit Select
End If
Case 3 ' 数字と英字の混合
If Not IsValidStr(inputStr, vbCharTypeDigit + vbCharTypeLetter) Then
MsgBox "数字と英字を混合して入力してください。"
txtBox.Value = ""
Exit Select
End If
End Select
コードは注意してご使用ください。
2. 特定の文字列の禁止
以下のコード例は、テキストボックスに入力された文字列に特定の文字が含まれていないかどうかをチェックする例です。
VBA
' テキストボックスのオブジェクト名
Dim txtBox As TextBox
' チェック対象となるテキストボックスを設定
Set txtBox = UserForm1.txtBox1 ' ※ テキストボックスの名前を適宜変更してください
' 禁止文字列
Const prohibitedChars As String = "!#$%&'()*+,-./:;<=>?@[]^_{|}~" ' ※ 禁止したい文字列を","で区切って追加
' 入力された文字列を取得
Dim inputStr As String
inputStr = txtBox.Value
' 禁止文字が含まれていないかチェック
If InStr(prohibitedChars, inputStr) > 0 Then
MsgBox "以下の文字は使用できません:" & prohibitedChars
txtBox.Value = ""
End If
コードは注意してご使用ください。
3. 入力桁数の制限
以下のコード例は、テキストボックスに入力された文字数が制限値を超えていないかどうかをチェックする例です。
VBA
' テキストボックスのオブジェクト名
Dim txtBox As TextBox
' チェック対象となるテキストボックスを設定
Set txtBox = UserForm1.txtBox1 ' ※ テキストボックスの名前を適宜変更してください
' 最大入力桁数
Const maxLength As Integer = 10 ' ※ 最大入力桁数を設定
' 入力された文字列を取得
Dim inputStr As String
inputStr = txtBox.Value
' 入力桁数が制限を超えていないかチェック
If Len(inputStr) > maxLength Then
MsgBox "入力できる桁数は" & maxLength & "桁までです。"
txtBox.Value = Left(txtBox.Value, maxLength)
End If
コードは注意してご使用ください。
4. その他
上 記以外にも、以下の様なチェックを行うことができます。
特定の文字列を含むかどうか
メールアドレス形式かどうか
日付形式かどうか
URL形式かどうか
これらのチェックは、上記の基本的なコードを応用することで実現可能です。
補足
上記のコード例はあくまで基本的な例であり、必要に応じて修正・追加等を行ってください。
エラー処理やメッセージ表示の内容などは、ご自身の用途に合わせて変更してください。
この記事が気に入ったらサポートをしてみませんか?