見出し画像

テキストボックスの数字チェック

 Excel VBAのユーザーフォームのテキストボックスに入力された値が数字かどうかをチェックする方法には、いくつかあります。

IsNumeric関数を使用する

 最も簡単な方法は、IsNumeric関数を使用する方法です。
 IsNumeric関数は、引数として渡された値が数値かどうかを判定します。

VBA
' テキストボックス1に入力された値が数字かどうかチェック
Dim blnIsNumeric As Boolean
blnIsNumeric = IsNumeric(TextBox1.Text)

' チェック結果に応じて処理を行う
If blnIsNumeric Then
' 数値の場合の処理
Else
' 数値以外の場合はエラーメッセージを表示など
MsgBox "数値を入力してください。"
End If
コードは注意してご使用ください。

 Val関数を使用する

 Val関数を使用して、テキストを数値に変換できるかどうかをチェックする方法もあります。
 Val関数は、引数として渡されたテキストを数値に変換し、変換に成功した場合は数値を返し、失敗した場合はエラーを返します。

VBA
' テキストボックス1に入力された値が数値に変換できるかどうかチェック
Dim varValue As Variant
On Error Resume Next ' エラーが発生しても処理を続行
varValue = Val(TextBox1.Text)
On Error Goto 0 ' エラーハンドラを解除

' 変換結果に応じて処理を行う
If Not IsError(varValue) Then
' 数値に変換できた場合の処理
' varValue には、テキストボックス1に入力された数値が格納されている
Else
' 数値に変換できなかった場合はエラーメッセージを表示など
MsgBox "数値を入力してください。"
End If
コードは注意してご使用ください。

 正規表現を使用する

 より高度なチェックを行う場合は、正規表現を使用する方法もあります。
 正規表現は、文字列のパターンを定義するための形式言語です。

VBA
' テキストボックス1に入力された値が数字かどうかチェック
Dim strPattern As String
Dim blnIsMatch As Boolean

' 数値のパターンを定義
strPattern = "^[0-9]+$"

' テキストボックス1に入力された値がパターンに一致するかどうかチェック
blnIsMatch = RegExMatch(TextBox1.Text, strPattern)

' チェック結果に応じて処理を行う
If blnIsMatch Then
' 数値の場合の処理
Else
' 数値以外の場合はエラーメッセージを表示など
MsgBox "数値を入力してください。"
End If
コードは注意してご使用ください。

 InputMaskプロパティを使用する

 テキストボックスに直接入力できる文字を制限することで、数字のみを入力できるようにする方法もあります。

VBA
' テキストボックス1に数字のみが入力できるように設定
TextBox1.InputMask = "00000"
コードは注意してご使用ください。
content_copy
5. KeyPressイベントを使用する

テキストボックスにキーが押されたときに処理を実行するKeyPressイベントを使用して、数字以外のキー入力を無効にする方法もあります。

VBA
' テキストボックス1にキーが押されたときの処理
Private Sub TextBox1_KeyPress(KeyAscii As Integer)

' 数字以外のキーが押された場合はキー入力を無効にする
If Not IsNumeric(Asc(Chr(KeyAscii))) And KeyAscii <> vbKeyBack Then
    KeyAscii = 0
End If

End Sub
コードは注意してご使用ください。

 これらの方法を組み合わせて、状況に応じて適切なチェック方法を選択してください。

この記事が気に入ったらサポートをしてみませんか?