首页 文章

PowerPoint VBA:“当前没有活动的文档窗口”

提问于
浏览
1

我试图在PowerPoint(2010)VBA中的幻灯片上创建一个形状

我创建了一个按钮,这段代码:

Private Sub AddShape_Click()

Dim shp As Shape
Dim sld As Slide

Set sld = Application.ActiveWindow.View.Slide
Set shp = sld.Shapes.AddShape(Type:=msoShapeRectangle, _
    Left:=24, Top:=65.6, Width:=672, Height:=26.6)
'No Shape Border
shp.Line.Visible = msoFalse
'Shape Fill Color
shp.Fill.ForeColor.RGB = RGB(137, 143, 75)
shp.Fill.BackColor.RGB = RGB(137, 143, 75)

结束子

当我以幻灯片放映方式运行演示文稿并单击“添加形状”按钮时,出现以下错误:

运行时错误'-2147188160(80048240)':应用程序(未知成员):无效请求 . 目前没有活动的文档窗口 .

我在网上找到的所有内容都表明此代码应运行正常 .
所有帮助赞赏!!!

卡罗琳

2 回答

  • 1

    在幻灯片放映视图中,事情的工作方式不同,但是一些非常简单的修改可以解决这个问题 . 将其添加到项目并将AddShape_Click指定为操作设置(运行宏):

    Public Sub AddShape_Click(oBtn As Shape)
    ' It has to be public for the action setting to see it
    
    Dim shp As Shape
    Dim sld As Slide
    
    'Set sld = Application.ActiveWindow.View.Slide
    Set sld = oBtn.Parent
    
    Set shp = sld.Shapes.AddShape(Type:=msoShapeRectangle, _
        Left:=24, Top:=65.6, Width:=672, Height:=26.6)
    'No Shape Border
    shp.Line.Visible = msoFalse
    'Shape Fill Color
    shp.Fill.ForeColor.RGB = RGB(137, 143, 75)
    shp.Fill.BackColor.RGB = RGB(137, 143, 75)
    
    End Sub
    
  • 1

    如果在演示文稿处于幻灯片放映(全屏)模式时运行代码,则会收到 No Current Active Document Window 错误 . 试试这个,相反:

    set sld = Application.ActivePresentation.SlideShowWindow.View.Slide

相关问题