テキストボックスで複数行の入力を許可する(MultiLineプロパティ)

ユーザーフォームに設置したテキストボックスなどで改行を入力して複数行で入力を許可するか設定するには MultiLine プロパティを使用します。ここでは Excel のユーザーフォームで MultiLine プロパティを使ってテキストボックスで複数行の入力を許可する方法について解説します。

(Last modified: )

改行を使って複数行の入力を許可する

テキストボックスなどでテキストを入力するときに改行を入力して複数行の入力ができるように設定するには MultiLine プロパティを使用します。デフォルトでは MultiLine の値は「False」となっています。

改行を使って複数行の入力を許可する(1)

テキストの入力時に改行を行うには Shift + Enter キーを押します。 MultiLine プロパティが「False」の場合は先ほどのキーを押しても改行は行われませんが、「True」に設定されている場合は改行が行われます。

テキストで複数行の入力を許可するには MultiLine プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「True」をクリックしてください。

改行を使って複数行の入力を許可する(2)

設定変更後、ユーザーフォームを表示してみます。表示されたテキストボックスにテキストを入力したあと Shift + Enter キーを押すと改行が行われて次の行からテキストを入力できるようになります。

改行を使って複数行の入力を許可する(3)

改行を使って複数行の入力を許可する(4)

改行を使って複数行の入力を許可する(5)

このように MultiLine プロパティの値を変更することで、テキストボックスなどで改行を入力して複数行のテキストを入力することができます。

なおテキストボックスには行末で自動で折り返しを行うかどうか設定する WordWrap プロパティも用意されています。 MultiLine プロパティが「False」に設定されていると WordWrap プロパティの値を「True」に設定しても自動で折り返しは行われなくなるのでご注意ください。

WordWrap プロパティについては「コントロール内のテキストを行末で折り返すか設定する(WordWrapプロパティ)」を参照されてください。

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

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

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

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

対象のオブジェクトの MultiLine プロパティに対して、「True」を代入した場合は複数行での入力が可能となります。「False」を代入した場合は複数行での入力が行えません。

サンプルコード

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

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

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

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

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

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

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

Private Sub UserForm_Initialize()
    TextBox1.MultiLine = True
    TextBox1.Text = "東京都千代田区" & vbNewLine & "大手町"
End Sub

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

MultiLine プロパティに「True」を設定しました。またテキストボックスの初期値として Text プロパティにテキストを設定しています。途中で定数 vbNewLine を使ってテキストの中に改行を挿入しています。

※ VBA で改行を行う方法については「VBAで改行する」を参照されてください。

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

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

ユーザーフォームが表示されました。改行を挿入した位置で改行されて表示されているのが確認できます。

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

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

なお MultiLine プロパティに「False」が設定されている場合に、先ほどと同じように改行が含まれるテキストを Text プロパティに設定してみます。

Private Sub UserForm_Initialize()
    TextBox1.MultiLine = False
    TextBox1.Text = "東京都千代田区" & vbNewLine & "大手町"
End Sub

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

ユーザーフォームが表示されました。今回は複数行での表示が行えないため、改行を挿入した位置に改行を表す文字が代わりに表示されて改行が行われずに 1 行で表示されているのが確認できます。

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

-- --

Excel のユーザーフォームで MultiLine プロパティを使ってテキストボックスで複数行の入力を許可する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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