大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAのテキストボックスで入力の仕方を設定する方法をご紹介します。文字数の入力制限、数字のみ入力する方法、改行と折り返しをする方法についてご紹介します。

はじめに

この記事ではテキストボックスの文字数制限と数字のみ入力、折り返し、改行の仕方についてご紹介します。

日付を『20200101』のように入力させたいといった場合には文字数を制限したり数字のみ入力させる方法が必要となりますので参考になるかと思います。

また、テキストボックス内に文章を入力したい場合にはテキストボックス内で折り返しと改行する方法が必要になりますので今回ご紹介する方法が使えるかと思います。

この記事で紹介すること

  • テキストボックスで文字数を制限する
  • テキストボックスで数字のみ入力する
  • テキストボックスで折り返す
  • テキストボックスで改行する

目次から見たい項目へ移動すると便利ですよ。

目次

VBAのテキストボックスで入力制限

Excel VBAのテキストボックスで文字数の入力制限をする方法をご紹介します。

日付をテキストボックスで入力する際に『20200101』の8文字で入力してほしいなどの条件がある場合に使えるかと思います。

VBAコードの場合

VBAコードで記述してテキストボックスに入力する文字数を制限する方法です。

テキストボックスに入力する文字数を4文字に制限するVBAコードになります。

『ユーザーフォームのコード』の中に記載します。

'テキストボックスが変更された場合に実行
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文字入力してみる

テキストボックスに5文字入力する

入力を確定してみます。

4文字に入力制限される

テキストボックスの文字が4文字に入力制限される

4文字だけ入力されました。4文字を超えた分が削除されています。

VBAコード説明(文字数を制限)

テキストボックスの値が変更されたら実行するイベントコード『Private Sub TextBox1_Change()』を使用しています。

テキストボックスに入力された値が4文字を超えた場合の条件『If Len(TextBox1.Text) > 4 Then』を記載します。

テキストボックスの左側の4文字だけを抜き出します『TextBox1.Text = Left(TextBox1.Text, 4)』。

これでテキストボックスの文字数を4文字に制限することができます。

プロパティの場合

プロパティでも文字数を入力制限できます。

VBAのプロパティで『MaxLength』に制限したい文字数を入力します。

プロパティで文字数の制限

VBAのプロパティでMaxLengthに制限したい文字数を入力する

4文字に制限したいので『MaxLength』に『4』を入力しました。

テキストボックスに5文字入力してみようとします。

4文字しか入力できない

テキストボックスに5文字入力しようとする

4文字に制限されているので5文字目が入力できません。

4文字に入力が制限されています。

VBAのテキストボックスで数字のみ

Excel VBAのテキストボックスに数字だけ入力する方法についてご紹介します。

日付を入力したいので『20200101』と数字だけ入力させるようにしたい場合などに使えるかと思います。

『ユーザーフォームの中のコード』に記載します。

'数字のみに制限
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

テキストボックス内に値を入力してみます。

テキストボックス内で折り返す

テキストボックス内の文字を折り返す

テキストボックス内の値を折り返すことができています。

縦スクロールも自動で表示されるようにしています。

VBAコード説明(折り返し)

テキストボックス内の文字を折り返すのは『TextBox1.WordWrap = True』と『TextBox1.MultiLine = True』でできます。

折り返しする際は縦スクロールが表示されるようにした方が見やすいので『TextBox1.ScrollBars = fmScrollBarsVertical』も記載しています。

これでテキストボックス内の文字を折り返すことができます。

テキストボックスに長文を入力したい場合に使えるかと思います。

プロパティの場合

プロパティの設定でテキストボックス内の文字を折り返す方法について説明します。

プロパティの『WordWrap』と『MultiLine』を『True』に設定します。

プロパティで折り返しを設定

VBAのプロパティで折り返しを設定する方法

縦スクロールを表示させる場合は『ScrollBars』を『fmScrollBarsVertical』に設定します。

これはやらなくても折り返しはできます。

縦スクロールバーを設定

VBAのプロパティで縦スクロールを表示させる方法

テキストボックス内に文字を入力してみます。

テキストボックス内で折り返し

テキストボックスの値を折り返す

テキストボックスに入力した値が折り返しされていることがわかります。

自動で縦スクロールバーも表示されています。

VBAのテキストボックスで改行

Excel VBAのテキストボックスで改行する方法を説明します。

VBAコードの場合

VBAコードでテキストボックス内のテキストを改行させる方法です。

『ユーザーフォームの中のコード』に記載します。

'ユーザーフォームが表示されたら実行
Private Sub UserForm_Initialize()
    TextBox1.EnterKeyBehavior = True '改行を許可
    TextBox1.MultiLine = True '複数行を許可
    TextBox1.ScrollBars = fmScrollBarsVertical '縦スクロールバーを表示
End Sub

テキストボックスに入力した値を改行してみます。

テキストボックス内で改行

テキストボックス内のテキストを改行させる

テキストボックス内で改行することができています。

縦スクロールバーも自動で表示させるようにしています。

VBAコード説明(テキストボックス内で改行)

テキストボックスでEnterキーをクリックした際に改行するため『TextBox1.EnterKeyBehavior = True』を入力します。

テキストボックス内で複数行を許可するため『TextBox1.MultiLine = True』を入力します。

これでテキストボックス内で改行することができます。

入力したテキストを見やすくするため縦スクロールバーを表示するため『TextBox1.ScrollBars = fmScrollBarsVertical』を入力しています。

プロパティの場合

プロパティの設定でテキストボックス内のテキストを改行することもできます。

VBAのプロパティで『EnterKeyBehavior』と『MultiLine』を『True』にします。

プロパティで改行の設定

プロパティを設定してテキストボックス内で改行できるようにする

これでテキストボックス内で改行ができるようになります。

入力を見やすくしたいので縦スクロールバーも設定しておきます。

VBAのプロパティで『ScrollBars』を『fmScrollBarsVertical』とします。

縦スクローバーを設定

テキストボックスで縦スクロールバーを自動で表示する設定

これで自動的に縦スクロールバーが表示されます。

テキストボックスに値を入力してみます。

テキストボックス内で改行

テキストボックスに値を入力する

テキストボックス内で改行できて、また、縦スクロールバーも表示されています。

おわりに

この記事ではテキストボックスの文字数制限と数字のみ入力、折り返し、改行の仕方についてご紹介しました。

日付を『20200101』のように入力させたいといった場合には文字数を制限したり数字のみを入力させる方法が必要となりますので参考になるかと思います。

また、テキストボックス内に文章を入力したい場合にはテキストボックス内で折り返しと改行する方法が必要になりますので今回ご紹介した方法が使えるかと思います。

ご参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す