'テキストボックスが変更された場合に実行
Private Sub TextBox1_Change()
'文字数が4文字が超えた場合
If Len(TextBox1.Text) > 4 Then
'左側の4文字をテキストボックスに入力
TextBox1.Text = Left(TextBox1.Text, 4)
End If
End Sub
4文字の制限がかかったテキストボックスに5文字入力してみます。
5文字入力してみる
入力を確定してみます。
4文字に入力制限される
4文字だけ入力されました。4文字を超えた分が削除されています。
VBAコード説明(文字数を制限)
テキストボックスの値が変更されたら実行するイベントコード『Private Sub TextBox1_Change()』を使用しています。
'数字のみに制限
Private Sub TextBox1_Change()
'文字数が0になったら終了
If Len(TextBox1.Text) = 0 Then Exit Sub
'テキストボックスの値を取得
a = TextBox1.Text
'文字数分だけ1文字ずつ後ろからループ
For i = Len(a) To 1 Step -1
'文字が数字以外の場合
If IsNumeric(Mid(a, i, 1)) = False Then
'数字以外の文字を削除
a = Replace(a, Mid(a, i, 1), "")
End If
Next
'テキストボックスに値を入力
TextBox1.Text = a
End Sub
テキストボックスに文字と数字『さしすせそ123』を入力してみます。
数字以外を入力
入力を確定してみます。
数字のみ入力される
テキストボックスの値は『123』となり、数字だけになりました。
数字のみに入力が制限されています。
VBAコード説明(数字のみ入力)
最初にテキストボックスの値を保存します『a = TextBox1.Text』。
1文字ずつ文字数だけ後ろからループします『For i = Len(a) To 1 Step -1』。
値が数字以外かを確認します『If IsNumeric(Mid(a, i, 1)) = False Then』。
値が数字以外の場合はその文字を削除します『a = Replace(a, Mid(a, i, 1), "")』。
数字のみにした文字列をテキストボックスに入力します『TextBox1.Text = a』。
最初にテキストボックスを変更して空白になったら終了させるコードを記載します『If Len(TextBox1.Text) = 0 Then Exit Sub』。
これでテキストボックスに数字のみを入力することができます。
VBAのテキストボックスで折り返し
テキストボックス内で文字が折り返しされるようにします。
VBAコードの場合
VBAコードでテキストボックス内の値を折り返しする方法を説明します。
『ユーザーフォームの中のコード』に記載します。
'ユーザーフォームが表示されたら実行
Private Sub UserForm_Initialize()
TextBox1.WordWrap = True '折り返しを許可
TextBox1.MultiLine = True '複数行を許可
TextBox1.ScrollBars = fmScrollBarsVertical '縦スクロールバーを表示
End Sub