Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 図・画像を行内オブジェクトに変換するWordマクロ

図・画像を行内オブジェクトに変換するWordマクロ

対象:Word2007, Word2010, Word2013

図・画像を行内オブジェクトに変換するWordマクロ

「ワード マクロ 図行内に一括で入れる」
「図を行内に word vba」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

Wordで画像などを扱う場合、行内オブジェクトと浮動オブジェクトについて理解しておくことは必須です。

「ワード マクロ 図行内に一括で入れる」
「図を行内に word vba」
という検索は、浮動オブジェクトである図・画像を、一気に行内オブジェクトに変換するマクロ・VBA(Visual Basic for Applications)のコードを探していた方によるものでしょう。

[スポンサードリンク]

アクティブ文書の図を行内オブジェクトに変換するサンプルマクロ

以下のようなマクロで、アクティブな文書内の図・画像を行内オブジェクトに変換できます。

Sub 図を行内オブジェクトに変換する_アクティブ文書()

 Dim shp As Shape

 For Each shp In ActiveDocument.Shapes
  If shp.Type = msoPicture Then
   shp.ConvertToInlineShape
  End If
 Next shp

End Sub

アクティブ文書の全Shapeにループを回して、
 For Each shp In ActiveDocument.Shapes

もしもShapeが画像だったときに、
  If shp.Type = msoPicture Then

Shape.ConvertToInlineShapeメソッドで行内オブジェクト・InlineShapeに変換しています。
   shp.ConvertToInlineShape

アクティブページの図を行内オブジェクトに変換するサンプルマクロ

以下のようなマクロで、アクティブなページの図・画像を行内オブジェクトに変換できます。

Sub 図を行内オブジェクトに変換する_アクティブページ()

 Dim shp As Shape

 For Each shp In _
 ActiveDocument.Bookmarks("\Page").Range.ShapeRange
  If shp.Type = msoPicture Then
   shp.ConvertToInlineShape
  End If
 Next shp

End Sub

考え方は、先のアクティブ文書の図を行内にするマクロと同じですが、ループを回す対象が、
 For Each shp In _
 ActiveDocument.Bookmarks("\Page").Range.ShapeRange
と、アクティブなページ内のShapeにしているところが違っています。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 図・画像を行内オブジェクトに変換するWordマクロ

「Shape・図形」の記事一覧

検索


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

.