ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2221|回复: 29

[求助] PPT VBA怎样改变音乐的触发器

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-3-5 11:51 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 shenjianrong163 于 2022-3-5 11:52 编辑

用PPT VBA插入音乐后,页面中自动添加音乐的触发器(单击音乐图标触发),页面中有一个矩形(名为“矩形1”),想通过VBA将音乐的触发器更改为矩形,请教怎样实现?谢谢!
01.jpg

  1. Sub InsertMp3()
  2.     Dim shp As Shape, L As Single, T As Single, W As Single, H As Single, myPath$, osp As Shape
  3.     On Error Resume Next
  4.     myPath = ActivePresentation.Path & "\ClockMusic.mp3"
  5.     With ActivePresentation.PageSetup
  6.        W = .SlideWidth '页面宽度
  7.        H = .SlideHeight '页面高度
  8.     End With
  9.     L = W - 60 '左边距
  10.     T = H - 50 '上边距
  11.     With ActivePresentation.Slides(1)
  12.         Set shp = .Shapes.AddMediaObject2(myPath, msoFalse, msoTrue, L, T)
  13.         Set osp = .Shapes("矩形1")
  14.     End With
  15. End Sub
复制代码
VBA怎样改变音乐的触发器.zip (181.83 KB, 下载次数: 20)

TA的精华主题

TA的得分主题

发表于 2022-3-6 14:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2022-10-8 09:38 | 显示全部楼层
这句改为
  1. Set shp = .Shapes.AddMediaObject2(myPath, L, T, 48, 48)
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-10-10 07:32 | 显示全部楼层

谢谢,想通过单击“矩形1”触发插入的mp3,不知道怎样实现?

TA的精华主题

TA的得分主题

发表于 2022-10-10 10:30 | 显示全部楼层
这个没法做。原理是这样的,当你插入音乐,音乐图标自动就有一个触发器,这是触发ClockMusic.mp3,
当你用“”矩形1“触发这个音乐图标,就是空的。它不能触发音乐。
给你两段代码,都是完整的,请参考下。审核需要时间。
  1. Sub InsertMp3()
  2.     Dim shp1 As Shape, shp2 As Shape, oEffect As Effect, L As Single, T As Single, W As Single, H As Single, myPath$
  3.     myPath = "c:" & "\ClockMusic.mp3"
  4.     L = W - 60 '左边距
  5.     T = H - 50 '上边距
  6.     Set shp1 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 170, 190, 130, 28)
  7.     Set shp2 = ActivePresentation.Slides(1).Shapes.AddMediaObject(myPath, L, T, 48, 48)
  8.     Set oEffect = ActivePresentation.Slides(1).TimeLine.InteractiveSequences.Add().AddEffect(Shape:=shp2, effectId:=msoAnimEffectCustom, trigger:=msoAnimTriggerOnShapeClick)
  9.     With oEffect.Timing
  10.         .Duration = 5
  11.         .TriggerShape = shp1
  12.     End With
  13.    
  14. End Sub

  15. Sub AddShapeSetTiming()
  16. '向幻灯片添加两个形状,并对该形状添加动画,然后在单击其他形状后开始动画。
  17.     Dim effDiamond As Effect
  18.     Dim shp2 As Shape
  19.     Set shp1 = ActivePresentation.Slides(1).Shapes.AddShape(Type:=msoShapeOval, Left:=400, Top:=100, Width:=100, Height:=50)
  20.     Set shp2 = ActivePresentation.Slides(1).Shapes.AddShape(Type:=msoShapeRectangle, Left:=100, Top:=100, Width:=50, Height:=50)
  21.     Set effDiamond = ActivePresentation.Slides(1).TimeLine.InteractiveSequences.Add().AddEffect(Shape:=shp2, effectId:=msoAnimEffectPathDiamond, trigger:=msoAnimTriggerOnShapeClick)

  22.     With effDiamond.Timing
  23.         .Duration = 5
  24.         .TriggerShape = shp1
  25.     End With
  26. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2022-10-10 10:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用个按钮播放时插入音乐不行吗?

TA的精华主题

TA的得分主题

发表于 2022-10-10 11:03 | 显示全部楼层
.SoundEffect.Name出现问题,需要修改,上个帖子还在审核中。
请看代码:

  1. Sub InsertMp3()
  2.     Dim shp1 As Shape, shp2 As Shape, oEffect As Effect, L As Single, T As Single, W As Single, H As Single, myPath$
  3.     myPath = "c:" & "\ClockMusic.mp3"
  4.     L = W - 60 '左边距
  5.     T = H - 50 '上边距
  6.     Set shp1 = ActivePresentation.Slides(1).Shapes.AddShape(msoShapeRectangle, 170, 190, 130, 28)
  7.     Set shp2 = ActivePresentation.Slides(1).Shapes.AddMediaObject(myPath, L, T, 48, 48)
  8.     With shp1.TextFrame.TextRange.ActionSettings(ppMouseClick)
  9.         .Action = ppActionNone
  10.         .SoundEffect.Name = myPath
  11.         .AnimateAction = msoFalse
  12.     End With
  13. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2022-10-10 12:49 | 显示全部楼层
这样行了。

  1. Sub Macro9()
  2.    
  3.     ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeRectangle, 170, 190, 130, 28).Select
  4.     With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseClick)
  5.         .Action = ppActionNone
  6.         .SoundEffect.Name = "Test.wav"
  7.         .AnimateAction = msoFalse
  8.     End With
  9. End Sub
复制代码

仅供参考。

TA的精华主题

TA的得分主题

发表于 2022-10-11 09:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
这个属于触发器转移,我没办法研究了,如果你研究好了,请共享程序,谢谢。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-10-11 15:11 | 显示全部楼层
dongdonggege 发表于 2022-10-11 09:04
这个属于触发器转移,我没办法研究了,如果你研究好了,请共享程序,谢谢。

好的,谢谢帮助!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-24 04:15 , Processed in 0.035428 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表