我想知道,如果ppt中有最大数量的视频可以通过VBA中的“AddMediaObject2”导入吗? 我得到一个奇怪的错误,如果我尝试使用以下宏导入几个视频(这是一个虚拟版本只是为了显示问题):
Sub loadVideos()
Const path As String = "D:\video.avi"
For folder = 1 To 20
Debug.Print "folder: " & folder
Dim sld As Slide
Set sld = ActivePresentation.Slides.Add(ActivePresentation.Slides.count + 1, ppLayoutTitleOnly)
sld.Select
For i = 1 To 8
Dim oShp As Shape
Set oShp = sld.Shapes.AddMediaObject2(FileName:=(path), _
LinkToFile:=msoFalse, _
SaveWithDocument:=msoTrue, _
Left:=0, _
Top:=0, _
Width:=-1, _
Height:=-1)
Next i
Next folder
End Sub
它可以按预期使用较小的视频文件(因此代码应该没问题!?)但我收到了错误
“运行时错误-214 .... Shapes.AddMediaObject2:无效请求,PowerPoint无法插入所选文件中的任何视频。检查是否安装了此媒体格式所需的编解码器并重复此过程。 “
如果我将其用于较大的视频,或者增加每张幻灯片上的视频数量或包含视频的幻灯片数量。 我怀疑它与视频编解码器有关,因为手动插入视频工作正常,到目前为止插入的视频(直到错误发生)工作正常。我还检查了所有这些插入的视频都没有完全填充RAM。 所以我想在ppt中可能存在一些内部堆栈或缓存内存问题。是否可以在ppt中加载媒体文件的数量或大小?
如果有人能告诉我它可能是ppt中的某些错误或可能指向某种补救措施,我将非常感激。也许我可以配置ppt接受更多/更大的视频?
非常感谢。
答案 0 :(得分:0)
同样的故事,我只能添加8 mpg文件(已安装的编解码器)。 解决方案是在添加单个文件(上面的示例代码)后打开和关闭演示文稿
ps将mpg转换为avi方法后工作正常...
For Each myBrand In Brands
Set ReturnPPPresentation = PptApp.Presentations.Open(tmpPresenationPath, withwindow:=msoFalse)
Set mySlajd = PPTTemplate.Slides(2).Duplicate
With mySlajd
Set shp = .Shapes.AddMediaObject2(myBrand.MultimediaPath, msoFalse, msoTrue, 218, 118.22, 384.71, 211.77)
Set shp = Nothing
End With
ReturnPPPresentation.Save
ReturnPPPresentation.Close
Next myBrand