万事不决问D版_PPT宏_批量分页插入MP3到PPT中

  • m
    magicsword
    如题,搞了半天没搞懂.实在是小白.
    需求: 有一堆ppt和mp3在同一文件夹, 音频文件已经按照0, 1, 2, 3...命名了.
    打算把这些mp3批量插入到每页的ppt中

    用手动的话肯定没问题,纯人力操作,不过我这有1200个ppt, 泪奔.

    打算用宏, 结果上网找了一个别人的例子,在我这就没法运行了.如图



    用宏估计能节约一半的时间,不过对1200个ppt来说还是杯水车薪.

    哪位大神能帮我做个py的执行文件.能达到一键解决的效果.

    可以有偿,或者我去信天(弦歌)那边买猪肉(或者毛老师)

    谢谢.
  • m
    magicsword
  • z
    zt9527
    用宏也可以依次打开PPT,然后执行插入的动作,当然PPT的名字也要有规律的,像MP3那样。
    10年没玩VBA了,很多都忘光了,等大佬来吧。
  • 围路人甲城
    没太看明白楼主的需求,是每个PPT插入一个音频,还是所有音频? 来去匆匆
  • m
    mrzhu
    我也看着很迷糊,是每一页都要插入mp3,还是没一个ppt插入一个mp3
  • 围路人甲城
    Sub ppt添加音频并播放()
    Set ppt = ActivePresentation
    s = ppt.Path '指定mp3文件夹
    a = Dir(s & "\*.mp3")
    If ppt.Slides.Count > 2 Then GoTo t '限制添加slide数量/3
    Do While a <> ""
    i = i + 1
    ActiveWindow.View.GotoSlide Index:=i
    With ActiveWindow.Selection.SlideRange.Shapes.AddMediaObject2( _
    FileName:=s & "\" & a, Top:=0, Left:=0, Width:=30, Height:=30)
    Set wd = .AnimationSettings.PlaySettings
    wd.PlayOnEntry = msoTrue '自动播放
    wd.PauseAnimation = msoTrue '自动停止
    End With
    With ppt.Slides(i).SlideShowTransition
    .AdvanceOnTime = msoTrue '自动切换
    .AdvanceTime = 1 '切换间隔时间/秒
    End With
    If i = 3 Then Exit Do '限制添加音频数量/3
    a = Dir
    Set newSlide = ppt.Slides.Add( _
    ppt.Slides.Count + 1, ppLayoutBlank)
    Loop
    t: With ppt.SlideShowSettings
    .StartingSlide = 1 '放映开始位置
    .EndingSlide = ppt.Slides.Count '放映结束位置
    .Run 'ppt开始放映
    End With
    End Sub


    在网上找了一段代码,测试了一下可行。楼主试试。
  • m
    magicsword
    感谢老哥提供解决方案,小白问一下: 这句 s = ppt.Path '指定mp3文件夹, 怎么把path替换成文件夹路径? 我试了下貌似提示语句不对.
    囧.



    update: 加了双引号,搞定了.多谢老哥帮助.
    待会去买猪肉去..
  • 围路人甲城
    这个path应该就是PPT所在文件夹。 来去匆匆
  • m
    magicsword
    老哥竟然实时在线. 十分感激
    好用了,帮了我一个大忙,待会我买猪肉去..
  • m
    magicsword
    买了一本弦歌妹子义卖的台历,内心平静了
  • 围路人甲城
    台历呢 来去匆匆
  • m
    magicsword