テキストボックスが変更されたら処理する
TextBoxのChangeイベントで入力の長さをラベルへ表示します。入力や削除のたびに表示を更新します。
実行前に確認
- コードでValueを変更した場合もChangeが発生します。この例はラベルだけを変更するのでTextBoxの再帰更新を起こしません。
- コードと公式仕様を照合した学習用の例です。Excel実機での実行確認は行っていません。
1サンプルコード
'【貼付先:UserForm1 のコードモジュール】
Option Explicit
Private Sub UserForm_Initialize()
Me.Width = 360
Me.Label1.AutoSize = True
Me.TextBox1.Value = ""
UpdateLengthLabel
End Sub
Private Sub TextBox1_Change()
UpdateLengthLabel
End Sub
Private Sub UpdateLengthLabel()
Me.Label1.Caption = "文字数:" & Len(CStr(Me.TextBox1.Value))
End Sub図で見る変更に反応する
イメージ図TextBoxのChangeイベントで入力の長さをラベルへ表示します。入力や削除のたびに表示を更新します。
入力
文字を入力・削除
Change
変更イベントが発生
表示
Lenの結果をLabel1へ
各操作は、このガイドに指定されたフォームのコードで行います。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する5つの手順で、コードの使い方を確認できます
- 1
Windows版デスクトップExcelの練習用ブックを.xlsmで保存し、Alt+F11→[挿入]→[ユーザーフォーム]で、名前がUserForm1の空のフォームを用意します。各例は別々に試します。
- 2
ツールボックスからTextBox1とLabel1を各1個を置き、各コントロールの[(Name)]が記載どおりか確認します。
- 3
UserForm1を右クリック→[コードの表示]を開き、掲載コード全体をフォームのコードモジュールへ貼り付けます。標準モジュールには貼り付けません。
- 4
VBEでUserForm1を選び、F5でフォームを表示します。 TextBox1に「ABC」と入力し、1文字削除します。
- 5
表示は「文字数:3」、1文字削除すると「文字数:2」に変わります。