テキストボックスでENTERキーの動作を変更する(EnterKeyBehaviorプロパティ)
ユーザーフォームに設置したテキストボックスなどで ENTER キーを押した場合にデフォルトでは次のコントロールにフォーカスが移動しますが、代わりに改行文字を挿入するように設定するには EnterKeyBehavior プロパティを使用します。ここでは Excel のユーザーフォームで EnterKeyBehavior プロパティを使ってテキストボックスでENTERキーの動作を変更する方法について解説します。
(Last modified: )
ENTERキーの挙動を変更する
テキストボックスなどテキストの編集画面で、 ENTER
キーが押されたときの挙動を変更するには EnterKeyBehavior
プロパティを使用します。デフォルトでは EnterKeyBehavior
の値は「False」となっています。
デフォルトの設定では ENTER
キーが押されると次のコントロールなどへフォーカスが移動します。
編集画面で ENTER
キーを押されたときに改行文字が入力されるように設定を変更するには EnterKeyBehavior
プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「True」をクリックしてください。
注意: EnterKeyBehavior
プロパティの値を「True」に設定して改行文字が入力されるようにするには MultiLine
プロパティの値が「True」でなければなりません。 MultiLine
プロパティの値が「False」の場合は、 EnterKeyBehavior
プロパティの値が Trueであっても次のコントロールへフォーカスが移動します。 MultiLine
プロパティについては「テキストボックスで複数行の入力を許可する(MultiLineプロパティ)」を参照されてください。
設定変更後、ユーザーフォームを表示してみます。表示されたテキストボックスにテキストを入力したあと ENTER
キーを押すと、カーソルがあった位置に改行文字が挿入されます。
このように EnterKeyBehavior
プロパティの値を変更することで、テキストボックスなどで ENTER
キーが押されたときの挙動を変更することができます。
なお EnterKeyBehavior
プロパティの値を変更せずにテキストの編集画面で改行文字を入力するには、 Shift
キーを押しながら ENTER
キーを押して下さい。
VBAのプログラムの中でEnterKeyBehaviorプロパティを設定する
プロパティウィンドウを使って EnterKeyBehavior
プロパティの値を変更する代わりに、 VBA のコードを記述して EnterKeyBehavior
プロパティの値を変更することもできます。
プログラムの中で EnterKeyBehavior
プロパティを設定する場合は次の書式を使用します。
オブジェクト.EnterKeyBehavior [= Boolean ]
対象のオブジェクトの EnterKeyBehavior
プロパティに対して、「True」を代入した場合は ENTER
キーが押されると改行文字が挿入されます。「False」を代入した場合は次のコントロールへフォーカスが移動します。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で EnterKeyBehavior
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() TextBox1.EnterKeyBehavior = True TextBox1.MultiLine = True End Sub
EnterKeyBehavior
プロパティに「True」を設定しました。(先に記載したとおり MultiLine
プロパティの値が「True」でないと設定が反映されないのであわせて設定しています)。
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。テキストボックスにテキストを入力したあと ENTER
キーを押してください。改行文字が挿入されます。
このように VBA のプログラムの中で EnterKeyBehavior
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで EnterKeyBehavior プロパティを使ってテキストボックスでENTERキーの動作を変更する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。