「vba ワード マクロ 文字列の折り返し」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
Word文書に浮動オブジェクトの画像・図を入れるような場合、本文の文字列と、画像・図の位置関係をどうするかを指定する[文字列の折り返し]は、とても重要です。
「vba ワード マクロ 文字列の折り返し」という検索キーワードは、この[文字列の折り返し]の設定を、VBA(Visual Basic for Applications)で行うにはどうすればいいのかを探している方によるものでしょう。
たくさんの浮動オブジェクトの文字列の折り返しを変更しようとすると、かなり面倒ですから、マクロで処理してしまいたいという要望は、とても共感できます。
アクティブ文書の全浮動オブジェクトの文字列の折り返しを四角に変更するサンプルマクロ
以下のようなマクロで、アクティブな文書の全Shapeの文字列の折り返しを「四角」に変更することができます。
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
shp.WrapFormat.Type = wdWrapSquare
Next shp
アクティブ文書のすべてのShapeにループを回して、
For Each shp In ActiveDocument.Shapes
WrapFormatオブジェクトのTypeを変更しています。
shp.WrapFormat.Type = wdWrapSquare
上記のマクロでは、全Shapeの文字列の折り返しを四角にしていますが、画像の設定だけを変更したいのであれば、
For Each shp In ActiveDocument.Shapes
If shp.Type = msoPicture Then
shp.WrapFormat.Type = wdWrapSquare
End If
Next shp
のようにIf文を入れればOKです。
アクティブページの全浮動オブジェクトの文字列の折り返しを四角に変更するサンプルマクロ
以下のようなマクロにすれば、アクティブなページの全Shapeの文字列の折り返しを「四角」に変更することができます。
Dim shp As Shape
For Each shp In _
ActiveDocument.Bookmarks("\Page").Range.ShapeRange
shp.WrapFormat.Type = wdWrapSquare
Next shp
先ほどのアクティブ文書を対象にしたマクロで
For Each shp In ActiveDocument.Shapes
となっていた部分が、
For Each shp In _
ActiveDocument.Bookmarks("\Page").Range.ShapeRange
となっていることが異なるだけです。
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 文字列の折り返しを変更するWordマクロ
TrackBack:1
- TrackBack URL
- WrapFormat.Typeプロパティで文字列の折り返し種別を指定する定数の一覧 from インストラクターのネタ帳
- Word(ワード)VBA(Visual Basic for Applications)で、文字列の折り返しを表すWrapFormat.Typeプロパティに...