几天前有个朋友(simon)来信问“如果在PPT里边插入影音文件,如何在保存文件的时候将影音文件也保存出来?”

呵呵,以前我也没处理过,通过测试,发现问题的关键是如何知道影音文件的路径,通过分析,发现其实并不是很难,主要是以前没有注意LinkFormat对象,其实在MSDN中有如下的范例:

With ActivePresentation.Slides(1).Shapes(1)
    If .Type = msoLinkedOLEObject Then
        With .LinkFormat
            .SourceFullName = "c:\my documents\wordtest.doc"
            .AutoUpdate = ppUpdateOptionAutomatic
        End With
    End If
End With

其中对SourceFullName 属性解释如下:

应用于示例特性返回或设置链接 OLE 对象的源文件的名称或路径。可读写。String 类型。

使用如下的代码测试了一下:

'<summary>
    'Test过程就是在在幻灯片里边插入一个空白幻灯片
    '然后在幻灯片中插入一个影片文件,然后查看Shape对象的LinkFormat对象的FullName属性就行了
    '至于保存的时候如何处理,这个简单,你写一段宏就可以了
    '剩下的自己发挥吧
'</summary>
Sub InsertAvi()
    ActiveWindow.Selection.SlideRange.Shapes.AddMediaObject(FileName:="F:\clock.avi", Left:=239.625, Top:=149.625).Select
    ActiveWindow.Selection.Unselect
End Sub

Sub ShowPath()
    If Application.ActivePresentation.Slides(1).Shapes(1).MediaType = ppMediaTypeMovie Then
        '关键是你理解一下LinkFormat对象
        'LinkFormat.SourceFullName就是文件的保存路径
        MsgBox Application.ActivePresentation.Slides(1).Shapes(1).LinkFormat.SourceFullName
    End If
End Sub

这些是在VBA里边测试的,通过了,我想最主要的就是这个LinkFormat.SourceFullName这句话了,其实simon的想法很好,因为如果PPT中的影音文件如果不保存的话,如果放到别的机器上,就不能正常播放了,AVI就变成了一个图片了,呵呵,所以还是有用的。

我想余下的最重要的就是Update这个方法了,如下:

For Each sld In ActivePresentation.Slides
    For Each sh In sld.Shapes
        If sh.Type = msoLinkedOLEObject Then
            sh.LinkFormat.Update
        End If
    Next
Next

通过这个修改绝对路径为相对路径,应该就不是问题了。

PowerPoint中的LinkFormat对象相关推荐

  1. 【在PowerPoint中插入视频的三种方法】

    为了能更好地帮助大家合理地在PowerPoint课件中插入和播放视频文件, 在PowerPoint中插入视频的三种方法 ,本文特向大家介绍PowerPoint中插入和处理视频的三种方法. 直接播放视频 ...

  2. 如何在PowerPoint中更改文本的大小写

    If you're looking to quickly change the case of the text in a slide of your PowerPoint presentation, ...

  3. 在PowerPoint中插入Flash动画

    这种方法是将动画作为一个控件插入到powerpoint中去,该方式的特点是它的窗口大小在设计时就固定下来,设定的方框的大小就是在放映时动画窗口的大小.当鼠标在Flash播放窗口中时,响应Flash的鼠 ...

  4. PowerPoint中插入并控制Flash播放

    一.PowerPoint中插入Flash文件(*.swf) 怎样把一个flash动画嵌入一个ppt文件中,从而使得播放时不在需要原来的flash文件       要在 PowerPoint 中播放 F ...

  5. PowerPoint中提示某些文件可能携带有病毒,损害您的计算机

    关于PPT的小问题(急)  悬赏分:200 - 解决时间:2007-5-27 11:58 我在PPT上的一张图上做了个歌曲的超链接,但每次点击播放的时候就会弹出一个对话框,说是不安全链接,问你是确定还 ...

  6. 如何在PowerPoint中插入时钟

    Constantly glancing at a clock on a wall or at your watch to keep up with the time can be distractin ...

  7. 如何在PowerPoint中制作流程图

    Microsoft PowerPoint provides built-in tools for creating and arranging different types of flowchart ...

  8. 关于javascript闭包中的this对象

    我们知道, this对象是运行时基于函数的执行环境绑定的:在全局函数中,this等于window,而当函数被作为某个对象的方法调用时,this等于那个对象.<Javascript高级程序设计&g ...

  9. excel html modify,在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010)...

    在Excel 2010中修改Series对象上的Z-index(Modify Z-index on Series object in Excel 2010) 我正在使用excel 2010. 我有一个 ...

最新文章

  1. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)
  2. 入门SAP PP的学习流程
  3. 一份来自28岁.NET老程序员的自白
  4. LeetCode【1--两数之和】 LeetCode【2--两数相加】
  5. eclipse警告与报错的修复
  6. JAVA入门级教学之(构造方法)
  7. or函数 java_Java OptionalInt orElseGet()用法及代码示例
  8. 中秋节PSD分层模板|电商营销借势促销,快快收藏!
  9. LayaAir WebSocket 通信
  10. AOV网与拓扑排序、拓扑排序算法
  11. 如何给共享文件夹设置密码?共享文件夹加密的方法
  12. MariaDB—— 14.存储引擎
  13. 一次fegin调用失败的调错经验
  14. 人体红外传感模块原理分析
  15. python进阶数据分析_数据分析--Part 2: Python进阶
  16. 通证大局观(二):通证权益解析
  17. 【大数据处理技术】实验10
  18. Linux常用命令介绍
  19. Bebras挑战样题之四——小海狸的密码机器
  20. 【RocketMQ】延迟消息(延迟队列)

热门文章

  1. Windows PE变形练手1-用PE自己的机器码修改自己的逻辑
  2. Win64 驱动内核编程-5.内核里操作文件
  3. hdu 5020 求三点共线的组合数(容器记录斜率出现次数)
  4. hdu3986 spfa + 枚举最短路上的边
  5. 【Android 逆向】加壳的 Android 应用启动流程 | 使用反射替换 LoadedApk 中的类加载器流程
  6. Java编程基础篇第二章
  7. android开发之当设置textview多少字后以省略号显示。限制TextView的字数
  8. javascript深入理解js闭包[转]
  9. IIS 7.0的ASP.NET应用程序生命周期概述
  10. 一些有关计组实验中Quartus中的名词或术语的解释