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

时间:2015-03-30 16:37:12

标签: vba video powerpoint

我想知道,如果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接受更多/更大的视频?

非常感谢。

1 个答案:

答案 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