Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 前面配置のShapeのみサイズ変更するWordマクロ

前面配置のShapeのみサイズ変更するWordマクロ

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2201 ビルド14827.20192 Microsoft Store)

「word VBA 前面表示の図のサイズ変更」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

Word文書内に、さまざまな文字列の折り返し設定が行われているShapeが存在するときに、前面に設定されているものだけ、Word VBAでサイズ変更したいということでしょうか。

[スポンサードリンク]

前面配置のShapeのみサイズ変更するサンプルマクロ

以下のWordマクロを実行すると、アクティブ文書内の前面配置のShapeのみ、100ポイント×100ポイントにサイズ変更されます。

Sub 前面配置のShapeのみサイズを変更する()
 Dim shp As Shape
 For Each shp In ActiveDocument.Shapes
  If shp.WrapFormat.Type = wdWrapFront Then
   shp.Width = 100
   shp.Height = 100
  End If
 Next
End Sub

サンプルマクロで行っている処理について

ShapeオブジェクトやShapeRangeオブジェクトに用意されているWrapFormatプロパティを使うと、

文字列の折り返し設定を表すWrapFormatオブジェクトを取得できます。

WrapFormatオブジェクトに用意されているTypeプロパティを使うと、

文字列の折り返しがどう設定されているかを表す、WdWrapType列挙型に定義されている定数を取得できます。

このことを利用して、上記のサンプルマクロでは、アクティブ文書内の全Shapeに対してFor Each~Nextループを回して、

Dim shp As Shape
For Each shp In ActiveDocument.Shapes

前面に配置されていることを示す定数wdWrapFrontが戻り値のShapeのみ、Widthプロパティ・Heightプロパティを使ってサイズを変更しています。

 If shp.WrapFormat.Type = wdWrapFront Then
  shp.Width = 100
  shp.Height = 100

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 前面配置のShapeのみサイズ変更するWordマクロ

「Shape・図形」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.