つらつら Excel VBA

私の備忘録です。

【Word VBA】図の書式設定、鮮明度設定

Sub 全ての図の鮮明度設定
    Dim shp As Word.Shape
    For Each shp In ThisDocument.Shapes
        Call setSharpness(shp, 1) '鮮明度+100%
    Next
End Sub

'鮮明度(シャープネス)設定
Sub setSharpness(shp As Word.Shape, pt As Double)
    Dim eff As PictureEffect
    With shp.Fill.PictureEffects
        Set eff = .Insert(msoEffectSharpenSoften) '鮮明度
        eff.EffectParameters(1).Value = pt '例)-0.5 = -50%
    End With
End Sub

全ての図とか書いたけどインライン図は対象外。そして、Word内の図や画像の劣化には注意しましょう。



.Insert(msoEffect略)とあるように、何度も実行するとパラメータが追加されまくります。
全部消す処理も置いておきます。

With shp.Fill.PictureEffects
    While .Count > 0
        .Delete (1)
    Wend
End With

以上。