コントロール内のテキストを行末で折り返すか設定する(WordWrapプロパティ)

ユーザーフォームに設置したラベルやテキストボックスなどのコントロール内のテキストを、行末で自動的に折り返すかどうか設定するするには WordWrap プロパティを使用します。ここでは Excel のユーザーフォームで WordWrap プロパティを使ってコントロール内のテキストを行末で折り返すか設定する方法について解説します。

(Last modified: )

テキストを行末で折り返すか設定する

ラベルに表示された文字列やテキストボックスに入力されたテキストをコントロールの幅に合わせて自動的に折り返すかどうか設定するには WordWrap プロパティを使用します。デフォルトでは WordWrap の値は「True」となっています。

テキストを行末で折り返すか設定する(1)

例えばラベルであれば Caption プロパティの値にラベルの幅に収まらない長さの文字列を設定してみると、行末で自動的に折り返しされて複数行で表示されます。

テキストを行末で折り返すか設定する(2)

コントロールで折り返しを行わないように設定するには WordWrap プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「False」をクリックしてください。

テキストを行末で折り返すか設定する(3)

WordWrap プロパティの値を「False」に変更すると、コントロールの幅に合わせて行末で折り返しが行われずに 1 行で表示されるように変更されます。ラベルの場合、ラベルの幅に収まらない文字列は表示されません。

テキストを行末で折り返すか設定する(4)

ユーザーフォームを実際に表示してみても、ラベルの幅に入らなかった部分は表示されていないことが確認できます。

テキストを行末で折り返すか設定する(5)

このように WordWrap プロパティの値を変更することで、ラベルやテキストボックスなどで行末で自動で折り返すかどうかを設定することができます。

テキストボックスの場合

テキストボックスの場合、 WordWrap プロパティの値が「True」の場合は、入力されたテキストがテキストの幅に収まらなかった場合は自動的に折り返して表示されます。

テキストを行末で折り返すか設定する(6)

テキストボックスで WordWrap プロパティの値を「False」に設定した場合、テキストボックスの幅を超えてテキストを入力することができますが、入力されたテキストは 一行で表示され適すボックスの幅の分だけが表示されます。

テキストを行末で折り返すか設定する(7)

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

MultiLine プロパティについては「テキストボックスで複数行の入力を許可する(MultiLineプロパティ)」を参照されてください。

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

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

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

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

対象のオブジェクトの WordWrap プロパティに対して、「True」を代入した場合は折り返しが行われます。「False」を代入した場合は折り返しが行われません。

サンプルコード

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

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

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

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

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

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

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

Private Sub UserForm_Initialize()
    Label1.Caption = "東京都千代田区大手町四丁目五番"
    Label1.WordWrap = False
End Sub

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

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

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

ユーザーフォームが表示されました。ラベルは WordWrap プロパティの値が「False」に設定されているため行末で折り返しが行われません。そのため、ラベルに設定された文字列の中で、ラベルの幅までの分だけが表示されています。

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

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

-- --

Excel のユーザーフォームで WordWrap プロパティを使ってコントロール内のテキストを行末で折り返すか設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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