動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル
画像のアート効果を無しにする、PowerPointマクロとExcelマクロをご紹介しました。
Wordマクロもどうぞ。
画像のアート効果を無しにするサンプルマクロ
以下のWordマクロで、アクティブページ上に存在する画像のアート効果がない状態にできます。
Sub アクティブページの画像のアート効果を無しにする()
ActiveWindow.View.Type = wdPrintView
Dim shp As Shape
For Each shp In ActiveDocument.Bookmarks("\Page").Range.ShapeRange
If shp.Type = msoPicture Then
Dim efct As PictureEffect
For Each efct In shp.Fill.PictureEffects
efct.Delete
Next
End If
Next
End Sub
ActiveWindow.View.Type = wdPrintView
Dim shp As Shape
For Each shp In ActiveDocument.Bookmarks("\Page").Range.ShapeRange
If shp.Type = msoPicture Then
Dim efct As PictureEffect
For Each efct In shp.Fill.PictureEffects
efct.Delete
Next
End If
Next
End Sub
サンプルマクロで行っている処理について
If文とその内側のFor Each~Nextループは、PowerPointマクロ・Excelマクロと同じです。
If shp.Type = msoPicture Then Dim efct As PictureEffect For Each efct In shp.Fill.PictureEffects efct.Delete Next
その外側のFor Each~Next文が異なります。
Dim shp As Shape For Each shp In ActiveDocument.Bookmarks("\Page").Range.ShapeRange
拙著『Excel VBAユーザーのためのWord VBA入門』の「chapter 8. ページを扱うには」で解説しているコード「ActiveDocument.Bookmarks("\Page").Range」を使って、アクティブなページを表すWord.Rangeオブジェクトを取得して、そのShapeRangeオブジェクトに対してFor Each~Nextループを回しています。
印刷プレビューではないモードのときに実行時エラーが発生するため、最初に表示モードを変更しています。
ActiveWindow.View.Type = wdPrintView
[スポンサードリンク]
- Newer:画像にぼかしを入れるPowerPointマクロ
- Older:画像のアート効果を無しにするExcelマクロ
Home » ワードマクロ・Word VBAの使い方 » Shape・図形 » 画像のアート効果を無しにするWordマクロ