VBA嵌入YouTube视频后调用MediaFormat报错:对象不存在
VBA嵌入YouTube视频到PPT后获取MediaFormat报错的解决方法
问题描述
- 使用
AddMediaObjectFromEmbedTag方法嵌入YouTube视频到PPT幻灯片,代码如下:Set PPTShp = PPTSld.Shapes.AddMediaObjectFromEmbedTag("https://youtu.be/fiz94XbgrJ0", Top:=0, Left:=0, Height:=171, Width:=312) - 视频成功显示在幻灯片上,但执行
Set PPTMediaFormat = PPTShp.MediaFormat时,报错:Shape(unknown member): Object does not exist - 改用
Shapes.AddMediaObject2方法后,执行相同的MediaFormat获取代码仍出现相同错误
原因分析
通过AddMediaObjectFromEmbedTag或AddMediaObject2嵌入的YouTube视频,本质是Web嵌入对象,并非PPT原生的媒体形状(如本地视频),这类对象没有MediaFormat属性,调用时自然会触发对象不存在的错误。
解决方案
如果需要对嵌入的YouTube视频进行相关设置,可按以下方式处理:
- 操作Web嵌入对象的原生属性
这类对象属于WebShape类型,可通过PPTShp.OLEFormat.Object访问其Web相关属性,示例代码:Dim webObj As Object Set webObj = PPTShp.OLEFormat.Object ' 示例:设置视频自动播放 webObj.Object.SetCustomProperty "autoplay", "1" - 原生媒体对象替代方案(兼容性有限)
若必须使用MediaFormat属性,可先嵌入本地占位视频,再通过MediaFormat.SetMediaFileName关联YouTube流地址,但该方法兼容性差,且YouTube流地址易失效,不推荐使用。
内容的提问来源于stack exchange,提问作者Vlado Homoľa
相关产品推荐
相关产品推荐

