画像のアート効果を無しに設定するPowerPointマクロを、先日ご紹介しました。
本当は、その逆を、私はやりたかったのです。
上図のように、スライド上に存在する複数の画像に、ぼかし効果をまとめて入れたかったのです。
画像にぼかしを入れるサンプルマクロ
(改善の余地があるのですが)以下のPowerPointマクロを実行すると、アクティブなスライドの画像にぼかしが入ります。
On Error GoTo ErrHndl
Dim shp As Shape
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
If shp.Type = msoPicture Then
shp.Fill.PictureEffects.Insert msoEffectBlur
shp.Fill.PictureEffects(1).EffectParameters(1).Value = 100
End If
Next
ErrHndl:
MsgBox "スライドを選択しておいてから実行してください。"
End Sub
例えば、
上図のように複数の画像が存在するスライドがアクティブなときに上記のマクロを実行すると、下図のようにぼかしが入った状態になります。
ただし、実行したあとに、ぼかしが入るまでには、ちょっとタイムラグがあります。
2枚の画像でも、処理が完了するまで数秒程度待たなければなりません。
これが、改善すべき点です。
サンプルマクロで行っている処理
For Each~Nextループと、If文は、アート効果を無しにするマクロと同じで、
Dim shp As Shape For Each shp In ActiveWindow.Selection.SlideRange.Shapes If shp.Type = msoPicture Then
その内側で行っている処理が異なります。
shp.Fill.PictureEffects.Insert msoEffectBlur shp.Fill.PictureEffects(1).EffectParameters(1).Value = 100
PictureEffects.Insertメソッドの引数に、定数msoEffectBlurを指定することで、ぼかし効果の入る状態にしてから、
shp.Fill.PictureEffects.Insert msoEffectBlur
どの程度のぼかし効果にするのかを指定しています。
shp.Fill.PictureEffects(1).EffectParameters(1).Value = 100
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » 画像にぼかしを入れるPowerPointマクロ