動作検証バージョン: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
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
[スポンサードリンク]
- Newer:拙著『図形操作の基本』の表紙を変更しました。
- Older:グラフエリア・プロットエリアの枠線をVBAで操作する
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 前面配置のShapeのみサイズ変更するWordマクロ