教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】テキストボックスに入力可能な文字数を指定する方法を教えて!

構文

構文は以下の通りです。

テキストボックス名.MaxLength = 値

解説

テキストボックス名には、テキストボックスの名前を指定します。MaxLengthプロパティは、入力可能な最大文字数を制御します。また、値にはテキストボックスに入力許可する最大文字数を設定します。

使い方

具体的な使い方を紹介します。

Private Sub UserForm_Initialize()
    ' フォームが初期化される際に実行されるコード
    txtContent.MaxLength = 30000 ' 最大文字数を設定
End Sub

上記は、UserForm_Initializeイベントプロシージャ内で処理が行われ、フォームが表示される際にテキストボックスの最大文字数が設定されることになり、txtContent.MaxLength = 30000 という行は、そのテキストボックスの最大文字数を30000文字に設定しています。

プログラミング例

以下に、プログラミング例を幾つか紹介します。

例1: フォームの初期化時に最大文字数を設定する

Private Sub UserForm_Initialize()
    txtContent.MaxLength = 30000 ' テキストボックスの最大文字数を設定
End Sub

このコードは、フォームが初期化される際にテキストボックスの最大文字数を30000文字に設定します。

例2: 別のボタンをクリックしたときに最大文字数を変更する

Private Sub btnChangeMaxLength_Click()
    txtContent.MaxLength = 50000 ' テキストボックスの最大文字数を変更
End Sub

このコードは、別のボタンがクリックされたときにテキストボックスの最大文字数を50000文字に変更します。

例3: テキストボックス内の文字数を監視する

Private Sub txtContent_Change()
    If Len(txtContent.Value) > txtContent.MaxLength Then
        MsgBox "最大文字数を超えています。"
        txtContent.Value = Left(txtContent.Value, txtContent.MaxLength) ' 最大文字数までのテキストに切り詰め
    End If
End Sub

このコードは、テキストボックスの内容が変更されるたびに実行され、入力文字数が最大文字数を超えている場合に警告メッセージを表示し、入力テキストを最大文字数まで切り詰めます。

まとめ

テキストボックス内で入力可能な最大文字数を制限することは、データの整合性を保ち、ユーザーエクスペリエンスを向上させるための重要な手法です。適切なテキストボックスをフォームに配置し、VBAコードを使用して最大文字数を設定できます。是非活用してください。