擦除PowerPoint笔绘图和注释

时间:2012-05-06 17:25:51

标签: powerpoint-vba

我希望以编程方式在PowerPoint 2003/2007/2010中删除幻灯片上的用户笔画和注释,作为发送“E”键击的替代方法。

我发现SlideShowView.EraseDrawing只会删除SlideShowView.DrawLine生成的行。

示例代码:

PowerPoint.Application.ActivePresentation.SlideShowSettings.Run.View.EraseDrawing

感谢您的回答! rjobidon

2 个答案:

答案 0 :(得分:0)

您是否希望在停止幻灯片放映并选择保留绘图后删除它?在这种情况下,请在要删除图纸的任何幻灯片上调用下面的EraseInkOnSlide函数。

Sub TestMe()
    EraseInkOnSlide ActivePresentation.Slides(1)
End Sub

Sub EraseInkOnSlide(oSl As Slide)
' Erases any INK shapes drawn by the user and 
' retained when the user quits the slide show
    Dim oSh As Shape
    Dim x As Long
    With oSl.Shapes
    For x = .Count To 1 Step -1
        If .Item(x).Type = 23 Then
            .Item(x).Delete
        End If
    Next
    End With
End Sub

我怀疑你必须暂时退出幻灯片放映模式,然后以幻灯片模式返回到当前幻灯片,以便在幻灯片放映模式下工作;在用户结束演出并选择保留形状之前,PPT显然不认为墨水形状是幻灯片形状集合的一部分。怪异。

答案 1 :(得分:0)

这使用户可以选择保留或删除墨迹,然后返回到幻灯片放映视图中的原始幻灯片。仍然不是你所追求的,真的,但它与我迄今为止所能达到的一样接近:

Private Sub CommandButton1_Click()
    Dim x As Long
    x = SlideShowWindows(1).View.Slide.SlideIndex

    With SlideShowWindows(1)
        .View.Exit
    End With

    With ActivePresentation
        .SlideShowSettings.Run
    End With

    SlideShowWindows(1).View.GotoSlide (x)

End Sub