← コード一覧へ戻る
基本UserForm

テキストボックスに入力できる文字数を制限する(1):MaxLength

UserFormのTextBoxでMaxLengthを5に設定し、6文字目の入力を制限します。入力後に検証するBeforeUpdateとの使い分けも説明します。

実行前に確認

  • これは最大文字数だけの制限です。空欄を禁止したり、数字だけに限定したりする設定ではありません。
  • MaxLength=0は無制限です。重要な保存処理では保存直前にもLenなどで検証し、UIの制限だけに依存しないようにします。
  • 添付目次の番号に対応させた独自の実装例です。書籍本文の方法を再現・確認したものではありません。
  • コードと公式仕様を照合した学習用の例です。Excel実機での実行確認は行っていません。

1サンプルコード

'【貼付先:UserForm1 のコードモジュール】
Option Explicit

Private Sub UserForm_Initialize()
    Me.TextBox1.MaxLength = 5
    Me.TextBox1.Value = ""
End Sub

図で見る入力時点で制限する

イメージ図

UserFormのTextBoxでMaxLengthを5に設定し、6文字目の入力を制限します。入力後に検証するBeforeUpdateとの使い分けも説明します。

  1. 設定

    MaxLength=5

  2. 入力

    123456と入力

  3. 結果

    入力欄は12345まで

空欄も入力できます。MaxLengthは必須入力や数字だけのチェックではありません。入力後に修正してもらう方式は関連ガイド6012で比較できます。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する6つの手順で、コードの使い方を確認できます
  1. 1

    Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。

  2. 2

    ツールボックスからTextBoxを1個(TextBox1)を置き、各コントロールの[(Name)]が記載どおりか確認します。

  3. 3

    UserForm1を右クリック→[コードの表示]を開き、掲載コード全体をフォームのコードモジュールへ貼り付けます。標準モジュールには貼り付けません。

  4. 4

    VBEでUserForm1を選び、F5でフォームを表示します。 「123456」と順にキー入力します。

  5. 5

    TextBox1には「12345」までが入り、6文字目は追加されません。

  6. 6

    6文字目を止めるだけならこのMaxLength方式を使います。長い文章をいったん入力し、利用者自身に修正してもらう場合は、関連ガイドのBeforeUpdate方式を使います。

使っている機能の公式ドキュメント(Microsoft Learn)