WordのVBAで、画像のレイアウトを行内から上下の文字配置に変更するサンプル。
必要になった背景は、Wordの画像は「レイアウト オプション」で行内に設定されていると、画像の複数選択ができないようで一括での更新が手間だったため。
それで、次のような簡易なVBAを作成したが、図のレイアウトを行内から上下の文字配置にしたい場面での備忘録。
図のレイアウトを行内から上下の文字配置に変更する場合のVBAサンプル
「レイアウト オプション」で行内に設定された図のみが対象です。
この実行後は、上下の文字配置になるので、他のコードに行内の図を対象にした箇所があれば、VBA実行の順番等は要注意。
Sub 図のレイアウトを行内から上下の文字配置に変更() Dim 画像 As Object For Each 画像 In ActiveDocument.InlineShapes '行内の図形抽出 If 画像.Type = wdInlineShapePicture Then '画像データ 画像.ConvertToShape.WrapFormat.Type = wdWrapTopBottom '上下配置 End If Next 画像 End Sub
wdWrapTopBottomの補足
ConvertToShapeで図形の周囲で文字列を折り返す方法をしているので、他のレイアウトにしたい時は以下を参考にする。
以上、WordのVBAで、図のレイアウトを行内から上下の文字配置に変更するサンプルでした。
なお、次の事例で活用する場合、「画像サイズの一括更新」のVBAより後の処理にする。上記VBAの処理で行内の図でなくなるためため、対象となる図が存在しないことになります。
Wordの画像は「レイアウト オプション」で行内に設定されているか否かでVBAでの処理方法が違うので注意が必要です。