PowerPoint中通过VBA加载的视频的最大数量/大小



我想知道,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

结束子

它可以像预期的那样与较小的视频文件一起工作(所以代码应该没问题!?)但我得到了错误

"运行时错误-214。。。。Shapes.AddMediaObject2:请求无效,PowerPoint无法插入所选文件中的任何视频。检查是否安装了此媒体格式所需的编解码器,然后重复此过程。"

如果我将其用于较大的视频,或者增加每张幻灯片上的视频数量或包含视频的幻灯片数量。我怀疑这与视频编解码器有关,因为手动插入视频效果很好,而且到目前为止插入的视频(直到错误发生)也很好。我还检查了RAM并没有被所有这些插入的视频完全填满。所以我认为ppt中可能存在一些内部堆栈或缓存内存问题。可以在ppt中加载的媒体文件的数量或大小有任何限制吗?

如果有人能告诉我这可能是ppt中的某个错误,或者可以指出某种补救措施,我将不胜感激。也许我可以配置ppt以接受更多/更大的视频?

非常感谢。

同样的情况对我来说,我只能添加8个mpg文件(已安装编解码器的regardles)。解决方案是在添加单个文件(上面的示例代码)后打开和关闭演示

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

最新更新