動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル
画像のアート効果を解除するPowerPointマクロをご紹介しました。
アート効果を表すPictureEffectsコレクション&PictureEffectオブジェクトは、Officeライブラリに含まれますから、よく似たコードでExcelマクロも作れます。
[スポンサードリンク]
画像のアート効果を無しにするサンプルマクロ
以下のExcelマクロで、アクティブシートの画像のアート効果を無しにできます。
Sub アクティブシートの画像をアート効果無しにする()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoPicture Then
Dim efct As PictureEffect
For Each efct In shp.Fill.PictureEffects
efct.Delete
Next
End If
Next
End Sub
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
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マクロと同じコードです。
If shp.Type = msoPicture Then Dim efct As PictureEffect For Each efct In shp.Fill.PictureEffects efct.Delete Next
Shapeオブジェクトは、Excelライブラリですが、PictureEffectオブジェクトはOfficeライブラリに属していますから、PowerPointマクロと同じオブジェクトを利用していることになります。
その外側については、ActiveSheetプロパティがあるので、
For Each shp In ActiveSheet.Shapes
以下のように書く必要のあるPowerPointマクロより
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
シンプルです。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 画像のアート効果を無しにするExcelマクロ