【问题标题】:AddMediaObject and AddMediaObject2 compiler errorAddMediaObject 和 AddMediaObject2 编译器错误
【发布时间】:2016-04-17 09:47:03
【问题描述】:

ActivePresentation.Slides(1).Shapes.AddMediaObject2(audioFileName, msoFalse, msoTrue, 50, 50, 50, 50) 每次都会出现错误,无论它是否具有完整的字符串,包括 Filename:= 等。它也不适用于 AddMediaObject。

这个: ActivePresentation.Slides(1).Shapes.AddMediaObject2 audioFileName, msoFalse, msoTrue, 50, 50, 50, 50

不会引发编译器错误,但也不起作用。我非常困惑,因为这让我连续三天感到沮丧。我已经搜索并尝试了任何人为此类代码键入的所有格式,但我终其一生都无法让它发挥作用。

它不适用于音频或视频。图片与 AddPicture 一起工作得很好,但它必须在一个

ActivePresentation.Slides(1).Shapes.AddPicture Filename:=picFileName, LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=50, Top:=50, Width:=50, Height:=50

类型格式,并且不适用于将文件名包围到高度的 ( 或 )。

另外,编译器错误告诉我添加一个等号和一个字符串......但在格式的末尾带有括号。我不知道发生了什么。

任何帮助将不胜感激。

【问题讨论】:

    标签: vba audio video powerpoint


    【解决方案1】:

    .Add 和许多其他方法可以充当语​​句或函数。

    ActivePresentation.Slides(1).Shapes.AddMediaObject2(audioFileName, msoFalse, ... etc etc (即 AddMediaObject2 之后的 Parens) 是一个函数,它将返回对新添加的媒体对象的引用,因此您需要这样做

    Set SomeObject = ActivePresentation.Slides(1).Shapes.AddMediaObject2(audioFileName, msoFalse, 
    

    相反。如果您不打算对返回的对象引用做任何事情,或者省略括号。

    只要我提供有效媒体文件的完整路径,您的第二种语法(不带括号)就可以在这里工作,PPT 可以手动导入该文件。

    运行代码时遇到什么错误?

    【讨论】:

    • 所以,这段代码:Sub addaudio() Set audio1 = ActivePresentation.Slides(p).Shapes.AddMediaObject(FileName:=ActivePresentation.Path & "\audio\audio" & p & ".wav", Left:=5, Top:=5, Width:=1, Height:=1) End Sub 工作得很好......但如果我将其更改为 AddMediaObject2,并添加 LinkToFile 和 SaveWithDocument,它将不再工作。
    • 你用的是什么版本的PPT?您是否看到对象浏览器中列出了 AddMediaObject2?早期版本的 PPT 不支持它(不过我不确定它是什么时候引入的)。如果它不在对象浏览器中,那么您的版本不支持它。
    • 睡眠不足。我试图与文件对话框和 AddMediaObject2 一起解决它。这个周末开始工作了。非常感谢您的帮助!我正在完成这个项目的路上。
    猜你喜欢
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    相关资源
    最近更新 更多