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

问题描述 投票:1回答:3

我正在尝试在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)':应用程序(未知成员):无效的请求。当前没有活动的文档窗口。

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

Carolyn

powerpoint-vba
3个回答
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


0
投票

您也可以得到此错误,因为PowerPoint最近崩溃了,并且仍在后台运行。尝试使用任务管理器杀死任何此类Powerpoint进程,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.