0

我正在尝试删除幻灯片上的现有形状(图片)并尝试了以下方法,但它们都不起作用。作为背景知识,此代码在 Excel 中运行,但与 powerpoint 交互,这只是代码片段。其他一切都很好(并且已经定义了 PPPres)。我还尝试对形状进行索引(即使它是幻灯片上唯一的形状)并使用 for 循环,但似乎仍然无法使其工作。

 With PPPres.Slides(5).Shapes
    If Shapes.Type = msoPicture Then
       .Delete
    End If
 End With

*错误 - 未找到方法或数据成员(在 .Delete 上)。我知道“.Delete”只能在“with 语句”中使用,但我有,所以我不知道出了什么问题。话虽如此,我然后尝试了以下方法:

 If PPPres.Slides(5).Shapes.Type = msoPicture Then
         Shapes.Delete
 End If

*错误 - 未找到方法或数据成员(在 .Type 上)。我知道“.Type”存在,所以我对问题所在感到困惑。

谢谢您的帮助!

4

2 回答 2

1

我认为在这种情况下最好使用 For Each 循环。如果有帮助,请参阅下文。

For Each shp In PPPres.Slides(5).Shapes
     If shp.Type = msoPicture Then
         shp.Delete
     End If
Next shp
于 2013-09-09T14:27:01.517 回答
1

Shapes 返回对幻灯片的整个形状集合的引用。如果您确定只有一种形状,请使用

With PPPres.Slides(5).Shapes(1)
  If .Type = msoPicture Then
    .Delete
  End If
End With
于 2013-09-09T14:29:02.117 回答