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

时间:2015-06-16 20:00:11

标签: powerpoint-vba

我正在尝试在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)

End Sub

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

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

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

卡罗琳

3 个答案:

答案 0 :(得分: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 :(得分:1)

如果在演示文稿处于幻灯片放映(全屏)模式时运行代码,则会出现No Current Active Document Window错误。试试这个,而不是:

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

答案 2 :(得分:0)

如果PowerPoint最近崩溃了并且仍在后台运行,您也可能会收到此错误。尝试使用任务管理器杀死所有此类Powerpoint进程,然后重试。