テキストボックスで複数行の入力を許可する(MultiLineプロパティ)
ユーザーフォームに設置したテキストボックスなどで改行を入力して複数行で入力を許可するか設定するには MultiLine プロパティを使用します。ここでは Excel のユーザーフォームで MultiLine プロパティを使ってテキストボックスで複数行の入力を許可する方法について解説します。
(Last modified: )
改行を使って複数行の入力を許可する
テキストボックスなどでテキストを入力するときに改行を入力して複数行の入力ができるように設定するには MultiLine
プロパティを使用します。デフォルトでは MultiLine
の値は「False」となっています。
テキストの入力時に改行を行うには Shift
+ Enter
キーを押します。 MultiLine
プロパティが「False」の場合は先ほどのキーを押しても改行は行われませんが、「True」に設定されている場合は改行が行われます。
テキストで複数行の入力を許可するには MultiLine
プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「True」をクリックしてください。
設定変更後、ユーザーフォームを表示してみます。表示されたテキストボックスにテキストを入力したあと Shift
+ Enter
キーを押すと改行が行われて次の行からテキストを入力できるようになります。
このように MultiLine
プロパティの値を変更することで、テキストボックスなどで改行を入力して複数行のテキストを入力することができます。
なおテキストボックスには行末で自動で折り返しを行うかどうか設定する WordWrap
プロパティも用意されています。 MultiLine
プロパティが「False」に設定されていると WordWrap
プロパティの値を「True」に設定しても自動で折り返しは行われなくなるのでご注意ください。
※ WordWrap
プロパティについては「コントロール内のテキストを行末で折り返すか設定する(WordWrapプロパティ)」を参照されてください。
VBAのプログラムの中でMultiLineプロパティを設定する
プロパティウィンドウを使って MultiLine
プロパティの値を変更する代わりに、 VBA のコードを記述して MultiLine
プロパティの値を変更することもできます。
プログラムの中で MultiLine
プロパティを設定する場合は次の書式を使用します。
オブジェクト.MultiLine [= Boolean ]
対象のオブジェクトの MultiLine
プロパティに対して、「True」を代入した場合は複数行での入力が可能となります。「False」を代入した場合は複数行での入力が行えません。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で MultiLine
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() TextBox1.MultiLine = True TextBox1.Text = "東京都千代田区" & vbNewLine & "大手町" End Sub
MultiLine
プロパティに「True」を設定しました。またテキストボックスの初期値として Text
プロパティにテキストを設定しています。途中で定数 vbNewLine
を使ってテキストの中に改行を挿入しています。
※ VBA で改行を行う方法については「VBAで改行する」を参照されてください。
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。改行を挿入した位置で改行されて表示されているのが確認できます。
このように VBA のプログラムの中で MultiLine
プロパティの値を変更することができました。
なお MultiLine
プロパティに「False」が設定されている場合に、先ほどと同じように改行が含まれるテキストを Text
プロパティに設定してみます。
Private Sub UserForm_Initialize() TextBox1.MultiLine = False TextBox1.Text = "東京都千代田区" & vbNewLine & "大手町" End Sub
ユーザーフォームが表示されました。今回は複数行での表示が行えないため、改行を挿入した位置に改行を表す文字が代わりに表示されて改行が行われずに 1 行で表示されているのが確認できます。
-- --
Excel のユーザーフォームで MultiLine プロパティを使ってテキストボックスで複数行の入力を許可する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。