我有一个PowerPoint宏,可以拍摄照片并将其添加到打开的幻灯片中。当我点击屏幕左侧的幻灯片列表下方(这导致最后一张幻灯片下面的一个稳固闪烁的水平条)后尝试运行宏时,我收到错误:
Runtime error '-2147188160 (80042240)':
Shape unknown member: invalid request. To select a shape, its view must be active
我认为这是因为我没有选择有效的对象,所以我添加了一个调试语句来确定选择的内容:
If ActiveWindow.Selection.Type = 0 Then
MsgBox "0"
End If
If ActiveWindow.Selection.Type = 1 Then
MsgBox "1"
End If
If ActiveWindow.Selection.Type = 2 Then
MsgBox "2"
End If
If ActiveWindow.Selection.Type = 3 Then
MsgBox "3"
End If
要添加的第一个图像会导致显示1
并正确添加图片,但会显示错误并停止宏。令人讨厌的是,当我尝试在调试模式下运行它时,它每次都有效。我只能假设我在调试时以某种方式手动修复问题。
导致问题的陈述:
ActiveWindow.Selection.SlideRange.Shapes.AddPicture(//file information//).Select
//the line after
ActiveWindow.Selection.ShapeRange.ZOrder msoSendToBack
答案 0 :(得分:1)
假设您想在幻灯片放映运行时添加图片,您也可以这样做:
Dim fileName, filename1, filename2
fileName = "c:\PROJEKT\....\Hydrangeas.jpg" 'your path +file name here
fileName1 = ... 'add other file path
fileName2 = ... 'add other file path
With ActivePresentation.SlideShowWindow.View.Slide.Shapes
.AddPicture fileName, True, True, 10, 10, 100, 100
.AddPicture fileName1, True, True, 30, 30, 100, 100
.AddPicture fileName2, True, True, 50, 50, 100, 100
'...etc.
End With
希望它会有所帮助...
答案 1 :(得分:1)
我想我知道这里发生了什么。如果您/用户在缩略图窗格中单击了幻灯片缩略图,则活动选择可能是幻灯片而不是添加的图片。
你可以通过做这样的事情来解决这个问题:
Dim oSh as Shape
Set oSh = ActiveWindow.Selection.SlideRange.Shapes.AddPicture(//file information//)
oSh.ZOrder msoSendToBack
使用对象引用(在本例中为oSh)而不是使用选择的众多原因中的一个。 ; - )
答案 2 :(得分:0)