幻灯片 VBA: "No currently active document window"



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

我创建了一个按钮和以下代码:

私人子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)":应用程序(未知成员):请求无效。当前没有活动的文档窗口。

我在网上找到的所有内容都表明此代码应该可以正常运行。
感谢所有协助!!

卡罗琳

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

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

在幻灯片放映视图中,事情的工作方式不同,但一些非常简单的修改将解决此问题。 将其添加到项目中,并将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

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

最新更新