コントロール内のテキストを行末で折り返すか設定する(WordWrapプロパティ)
ユーザーフォームに設置したラベルやテキストボックスなどのコントロール内のテキストを、行末で自動的に折り返すかどうか設定するするには WordWrap プロパティを使用します。ここでは Excel のユーザーフォームで WordWrap プロパティを使ってコントロール内のテキストを行末で折り返すか設定する方法について解説します。
(Last modified: )
テキストを行末で折り返すか設定する
ラベルに表示された文字列やテキストボックスに入力されたテキストをコントロールの幅に合わせて自動的に折り返すかどうか設定するには WordWrap
プロパティを使用します。デフォルトでは WordWrap
の値は「True」となっています。
例えばラベルであれば Caption
プロパティの値にラベルの幅に収まらない長さの文字列を設定してみると、行末で自動的に折り返しされて複数行で表示されます。
コントロールで折り返しを行わないように設定するには WordWrap
プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし、「False」をクリックしてください。
WordWrap
プロパティの値を「False」に変更すると、コントロールの幅に合わせて行末で折り返しが行われずに 1 行で表示されるように変更されます。ラベルの場合、ラベルの幅に収まらない文字列は表示されません。
ユーザーフォームを実際に表示してみても、ラベルの幅に入らなかった部分は表示されていないことが確認できます。
このように WordWrap
プロパティの値を変更することで、ラベルやテキストボックスなどで行末で自動で折り返すかどうかを設定することができます。
テキストボックスの場合
テキストボックスの場合、 WordWrap
プロパティの値が「True」の場合は、入力されたテキストがテキストの幅に収まらなかった場合は自動的に折り返して表示されます。
テキストボックスで WordWrap
プロパティの値を「False」に設定した場合、テキストボックスの幅を超えてテキストを入力することができますが、入力されたテキストは 一行で表示され適すボックスの幅の分だけが表示されます。
なおテキストボックスのように MultiLine
プロパティも用意されている場合、 MultiLine
プロパティを「False」に設定すると WordWrap
プロパティの値を「True」に設定しても自動で折り返しは行われなくなります。
※ MultiLine
プロパティについては「テキストボックスで複数行の入力を許可する(MultiLineプロパティ)」を参照されてください。
VBAのプログラムの中でWordWrapプロパティを設定する
プロパティウィンドウを使って WordWrap
プロパティの値を変更する代わりに、 VBA のコードを記述して WordWrap
プロパティの値を変更することもできます。
プログラムの中で WordWrap
プロパティを設定する場合は次の書式を使用します。
オブジェクト.WordWrap [= Boolean ]
対象のオブジェクトの WordWrap
プロパティに対して、「True」を代入した場合は折り返しが行われます。「False」を代入した場合は折り返しが行われません。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で WordWrap
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。
Private Sub UserForm_Initialize() Label1.Caption = "東京都千代田区大手町四丁目五番" Label1.WordWrap = False End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。ラベルは WordWrap
プロパティの値が「False」に設定されているため行末で折り返しが行われません。そのため、ラベルに設定された文字列の中で、ラベルの幅までの分だけが表示されています。
このように VBA のプログラムの中で WordWrap
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで WordWrap プロパティを使ってコントロール内のテキストを行末で折り返すか設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。