我正在尝试在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)': 应用程序(未知成员):无效请求。目前没有活动的文档窗口。
我在网上找到的所有内容都表明此代码运行正常 所有的帮助表示赞赏!!!
卡罗琳
答案 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进程,然后重试。