テキストボックスに入力できる最大文字数を設定する(MaxLengthプロパティ)

ユーザーフォームに設置したテキストボックスやコンボボックスに入力できる最大文字数を設定するには MaxLength プロパティを使用します。ここでは Excel のユーザーフォームで MaxLength プロパティを使ってテキストボックスの最大文字数を設定する方法について解説します。

(Last modified: )

入力できる最大文字数を設定する

テキストボックスまたはコンボボックスに入力できる最大文字数を設定するには MaxLength プロパティを使用します。デフォルトでは MaxLength の値は 0 となっています。 0 の場合は最大文字数の制限がありません。

入力できる最大文字数を設定する(1)

最大文字数を設定するには MaxLength プロパティをクリックし、値を直接編集してください。単位は文字数です。

例えばテキストボックスの最大文字数を 5 に設定してみます。この場合は半角文字であっても全角文字であっても最大 5 文字まで入力することができます。

入力できる最大文字数を設定する(2)

このように MaxLength プロパティの値を変更することで、テキストボックスまたはコンボボックスに入力できる最大文字数を設定することができます。

VBAのプログラムの中でMaxLengthプロパティを設定する

プロパティウィンドウを使って MaxLength プロパティの値を変更する代わりに、 VBA のコードを記述して MaxLength プロパティの値を変更することもできます。

プログラムの中で MaxLength プロパティを設定する場合は次の書式を使用します。

オブジェクト.MaxLength [= Long ]

対象のオブジェクトの MaxLength プロパティに対して、最大文字数を長整数型の数値で代入します。単位は文字数です。

数値として 0 を設定した場合は最大文字数の制限なしとなりますのでご注意ください。

サンプルコード

簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize イベントに対するイベントプロシージャを作成し、その中で MaxLength プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。

Initialize イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。

ユーザーフォームのコントロールが何もないところをダブルクリックしてください。

VBAのプログラムの中でMaxLengthプロパティを設定する(1)

ユーザーフォームの規定のイベントである Click イベントに対するイベントプロシージャが表示されます。

VBAのプログラムの中でMaxLengthプロパティを設定する(2)

今回はユーザーフォームの Initialize イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。今回はテキストボックスの最大文字数を 5 文字に設定しています。

Private Sub UserForm_Initialize()
    TextBox1.MaxLength = 5
End Sub

VBAのプログラムの中でMaxLengthプロパティを設定する(3)

これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

VBAのプログラムの中でMaxLengthプロパティを設定する(4)

ユーザーフォームが表示されました。テキストボックスに文字を入力してみると、最大文字数に設定した 5 文字以上は入力できないことが確認できます。

VBAのプログラムの中でMaxLengthプロパティを設定する(5)

最大文字数の単位は文字数なので、半角であっても全角であっても同じ文字数だけ入力することができます。

VBAのプログラムの中でMaxLengthプロパティを設定する(6)

このように VBA のプログラムの中で MaxLength プロパティの値を変更することができました。

-- --

Excel のユーザーフォームで MaxLength プロパティを使ってテキストボックスの最大文字数を設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。