テキストボックスでENTERキーの動作を変更する(EnterKeyBehaviorプロパティ)

ユーザーフォームに設置したテキストボックスなどで ENTER キーを押した場合にデフォルトでは次のコントロールにフォーカスが移動しますが、代わりに改行文字を挿入するように設定するには EnterKeyBehavior プロパティを使用します。ここでは Excel のユーザーフォームで EnterKeyBehavior プロパティを使ってテキストボックスでENTERキーの動作を変更する方法について解説します。

(Last modified: )

ENTERキーの挙動を変更する

テキストボックスなどテキストの編集画面で、 ENTER キーが押されたときの挙動を変更するには EnterKeyBehavior プロパティを使用します。デフォルトでは EnterKeyBehavior の値は「False」となっています。

ENTERキーの挙動を変更する(1)

デフォルトの設定では ENTER キーが押されると次のコントロールなどへフォーカスが移動します。

ENTERキーの挙動を変更する(2)

編集画面で ENTER キーを押されたときに改行文字が入力されるように設定を変更するには EnterKeyBehavior プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「True」をクリックしてください。

ENTERキーの挙動を変更する(3)

注意: EnterKeyBehaviorプロパティの値を「True」に設定して改行文字が入力されるようにするには MultiLine プロパティの値が「True」でなければなりません。 MultiLine プロパティの値が「False」の場合は、 EnterKeyBehaviorプロパティの値が Trueであっても次のコントロールへフォーカスが移動します。 MultiLine プロパティについては「テキストボックスで複数行の入力を許可する(MultiLineプロパティ)」を参照されてください。

設定変更後、ユーザーフォームを表示してみます。表示されたテキストボックスにテキストを入力したあと ENTER キーを押すと、カーソルがあった位置に改行文字が挿入されます。

ENTERキーの挙動を変更する(4)

ENTERキーの挙動を変更する(5)

このように EnterKeyBehavior プロパティの値を変更することで、テキストボックスなどで ENTER キーが押されたときの挙動を変更することができます。

なお EnterKeyBehavior プロパティの値を変更せずにテキストの編集画面で改行文字を入力するには、 Shift キーを押しながら ENTER キーを押して下さい。

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

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

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

オブジェクト.EnterKeyBehavior [= Boolean ]

対象のオブジェクトの EnterKeyBehavior プロパティに対して、「True」を代入した場合は ENTER キーが押されると改行文字が挿入されます。「False」を代入した場合は次のコントロールへフォーカスが移動します。

サンプルコード

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

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

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

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

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

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

今回はユーザーフォームの Initialize イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。

Private Sub UserForm_Initialize()
    TextBox1.EnterKeyBehavior = True
    TextBox1.MultiLine = True
End Sub

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

EnterKeyBehavior プロパティに「True」を設定しました。(先に記載したとおり MultiLine プロパティの値が「True」でないと設定が反映されないのであわせて設定しています)。

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

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

ユーザーフォームが表示されました。テキストボックスにテキストを入力したあと ENTER キーを押してください。改行文字が挿入されます。

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

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

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

-- --

Excel のユーザーフォームで EnterKeyBehavior プロパティを使ってテキストボックスでENTERキーの動作を変更する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

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