PR

【VBA】ユーザーフォームで改行やタブ入力を有効にする

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
ユーザーフォーム上のテキストボックスを更に扱いやすくする手段の1つとして、改行キーやタブキーを有効にする方法もあります。これらはEnterKeyBehaviorプロパティ/TabKeyBehaviorプロパティを利用することで設定できますので、今回はその内容について書いていきます。

スポンサーリンク

1.サンプル概要

UserForm上にテキストボックスとコマンドボタンを配置したサンプルフォームを作成しています。

配置したテキストボックスに初期化処理として複数行の入力可/改行・タブキーの有効化処理を行っていますので、テキストボックス上での改行やタブ入力が可能となっています。

テキストボックス下部の右側のコマンドボタンは複数行入力/改行/タブキーの有効/無効を切り替えますので、クリックするとボタン表記が変わるようにしています。

以上がサンプル概要になります。

2.サンプルコード

今回サンプルとして作成したユーザーフォーム構成は以下の通りです。

◆UserForm初期化処理

Private Sub UserForm_Initialize()
'ユーザーフォーム1の初期化処理として
'複数行入力/改行/タブキーを有効化する

  'テキストボックス1に対する処理
  With TextBox1
     '複数行入力の有効化
     .MultiLine = True
     '改行キーの有効化
     .EnterKeyBehavior = True
     'タブキーの有効化
     .TabKeyBehavior = True
  End With

End Sub

ユーザーフォームの初期化処理としてInitializeイベントでテキストボックスへの複数行入力/改行・タブキー有効化を設定します。

改行を行うにはEnterKeyBehaviorプロパティタブキーの有効化にはTabKeyBehaviorプロパティを利用します。これらのプロパティを利用する上ではMultiLineプロパティがTrue(複数行入力可)であることが前提です。

構文:EnterKeyBehavior/TabKeyBehavior = expression

EnterKeyBehaviorプロパティ(改行)、TabKeyBehavior(Tab)プロパティにTrueとすることでEnterキーやTabキーを押した際の動作を設定することができます。

◆CommandButton1:有効化/無効化切り替え

Private Sub CommandButton1_Click()
'※複数行入力/改行/タブキー有効/無効切り替え処理

 'テキストボックス内のデータクリア
 Call CommandButton2_Click

 'テキストボックス1に対する処理
 With TextBox1
   '改行キーが有効の場合、複数行入力/改行/
   'タブキーを無効化
   If .EnterKeyBehavior = True Then
        '複数行入力の無効化
        .MultiLine = False
        '改行キーの無効化
        .EnterKeyBehavior = False
        'タブキーの無効化
        .TabKeyBehavior = False
        'コマンドボタン1のキャプションを変更
        CommandButton1.Caption = "改行・タブ無効"
     Else
        '無効化されている場合はユーザーフォーム初期設定を
        '呼び出して有効化する
        Call UserForm_Initialize
        'コマンドボタン1のキャプションを変更
        CommandButton1.Caption = "改行・タブ有効"
   End If
 End With
  
End Sub

CommandButton1の処理としてInitializeイベントで設定したEnterKeyBehaviorプロパティ/TabKeyBehaviorプロパティの有効・無効化の切り替えを行っています。

最初にCommandButton2_Clickを実行してテキストボックス内のデータをクリアし、テキストボックス1の状態を確認して有効⇔無効の処理を行っています。それぞれ切り替え後にボタンのキャプション表記を変更することで現在の状態を表すようにしています。

◆CommandButton2:データクリア

テキストボックス内を空欄(クリア)とするための処理を行います。

Private Sub CommandButton2_Click()
'※テキストボックス1のデータクリア処理

  'テキストボックス1を空欄にする
  Me.TextBox1 = vbNullString

End Sub

3.まとめ

ユーザーフォーム上に設けたテキストボックスへの入力が更に扱いやすくなりますので知っておくと利用機会も多いと思います。



また、テキストボックスの初期設定であれば記述せずとも「プロパティウィンドウ」で設定することもできますので、何か機会があればご利用をご検討ください。

以上、ユーザーフォームで改行やタブ入力を有効にする方法についてでした!今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました