Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 画像 » 画像にぼかしを入れるPowerPointマクロ

画像にぼかしを入れるPowerPointマクロ

動作検証バージョン:Windows 11 Home + 64bit PowerPoint バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル

画像のアート効果を無しに設定するPowerPointマクロを、先日ご紹介しました。

本当は、その逆を、私はやりたかったのです。

上図のように、スライド上に存在する複数の画像に、ぼかし効果をまとめて入れたかったのです。

[スポンサードリンク]

画像にぼかしを入れるサンプルマクロ

(改善の余地があるのですが)以下のPowerPointマクロを実行すると、アクティブなスライドの画像にぼかしが入ります。

Sub アクティブスライドの画像にぼかしを入れる()
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

Exit Sub
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マクロ

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

.