「excel vba 図形内でテキストを折り返す」
「excel vba 図形 テキストボックス 折り返し」
といった検索キーワードでのアクセスに気が付きました。
最近のExcelでは、[図形の書式設定]作業ウィンドウ-[文字のオプション]-[テキストボックス]-[図形内でテキストを折り返す]チェックボックスで、
図形内の文字列を折り返すかどうかを設定できます。
これをExcel VBAから設定するには、どのようなコードを書けばいいのかを探していた方による検索です。
図形内でテキストを折り返すサンプルマクロ
アクティブなワークシートにテキストボックスなどを作成して文字列を入力し、以下のSubプロシージャを実行してみてください。
ActiveSheet.Shapes(1).TextFrame2.WordWrap = msoTrue
End Sub Sub 図形内でテキストを折り返さない()
ActiveSheet.Shapes(1).TextFrame2.WordWrap = msoFalse
End Sub
TextFrame2.WordWrapで図形内テキストの折り返しを設定
拙著『いちばんやさしいPowerPoint VBAの教本』のLesson 45「TextFrameは文字列枠を表すオブジェクトです」で、TextFrameオブジェクトに用意されているWordWrapプロパティについて少しだけ触れています。
上記のSubプロシージャで利用しているTextFrame2.WordWrapプロパティは、PowerPoint VBAのTextFrame.WordWrapとそっくりなプロパティで、msoTrueでテキストが折り返され、msoFalseでテキストの折り返しが解除されます。
Excel VBAの場合、TextFrameオブジェクトにはWordWrapプロパティが用意されていないのでTextFrame2オブジェクトのWordWrapを利用しています。
Excel VBAからの図形操作は、レガシーなDrawingObjects系、2003までのShape.TextFrame系、2007以降のShape.TextFrame2系が混在してしまっているので、PowerPoint VBAのShapeオブジェクトから攻略するほうが、理解しやすいと私は考えています。
最終更新日時:2020-03-17 15:20
Home » エクセルマクロ・Excel VBAの使い方 » 図形内文字列 » テキストを折り返す設定をVBAで-TextFrame2.WordWrap