「word vba 表 文字列の折り返し」
という検索キーワードでアクセスがありました。
Wordでは、[表のプロパティ]ダイアログ-[表]タブの[文字列の折り返し]で、
本文文字列に対して表をどのように表示するか設定できます。
これをVBAのコードから設定するには、どのようなコードを書けばいいのかを探していらしたのでしょうか。
表の文字列の折り返しを設定するサンプル
アクティブ文書に表を作成しておいて、以下のSubプロシージャを実行すると、1つ目の表の[文字列の折り返し]が「する」に設定されます。
ActiveDocument.Tables(1).Rows.WrapAroundText = True
End Sub
TableオブジェクトにWrapAroundTextプロパティはない
コード全体としては、わかってしまえば、それほど難しくはないと感じます。
ただ、WrapAroundTextプロパティの用意されているオブジェクトが、TableオブジェクトではなくRowsオブジェクトである点は、かなり興味深く感じます。
この記事を書くまで、私は表の文字列の折り返しを設定するコードを書いたことがなかったので、表を表すTableオブジェクトに「Wrap」という単語を含むプロパティが存在するだろうと思っていました。
ところが拙著『いちばんやさしいPowerPoint VBAの教本』でも多用しているオブジェクトブラウザーでいくら探しても、それらしきプロパティがTableオブジェクトには見つかりません。
で、マクロ記録してみると、
Selection.Tables(1).Rows.WrapAroundText = True
といったコードが作られ、表内の全行を表すRowsコレクションオブジェクトに、WrapAroundTextプロパティが用意されていることを知りました。
そして、あらためてオブジェクトブラウザーを確認すると
戻り値が「As Long」と定義されているのも、興味深く感じます。
最終更新日時:2021-03-20 07:56
Home » ワードマクロ・Word VBAの使い方 » 表・テーブル » Word VBAで表の文字列の折り返しを設定する-Rows.WrapAroundText