user_tnsps 发表于 2016-4-12 12:22:38

[求助]第一次显示全部......

我做了一个PPT,共17页,已经保存为PPS,并且设置为循环播放,现要求如下:
1,第一次播放全部内容(1~17).
2,第二次开始播放1,8,9,10....17,就是从第二次开始跳过2~7页。
可能要用到VBA,问题是:
1,PPS可以直接打开有宏的文档吗?
2,如果要用到宏,如何写?谢谢。

was9527 发表于 2016-4-12 13:59:08

楼主的意思就是要在第一轮放映中当放到第17张幻灯片时自动将第2-7张幻灯片设置为隐藏,这要用到PPT VBA中的SlideShowNextSlide事件。为这一事件添加如下代码即可实现你的设想:
If SlideShowWindows(1).View.CurrentShowPosition = 17 Then '若当前放映的是第17张幻灯片
ActivePresentation.Slides.Range(Array(2, 3, 4, 5, 6, 7)).SlideShowTransition.Hidden = msoTrue '则将第2-7张幻灯片设为隐藏
End If
若要在退出后撤销对上述幻灯片的隐藏,可在“SlideShowEnd”事件中进行。(将上面“Hidden”属性重设为“msoFalse”。)
若对事件的使用不熟,可参看PowerPoint的VBA帮助。
若要让PPT真正自动响应事件,最好下载一个名为“autoevents”的加载宏,里面的“auto_nextslide”事件比上面提到的“SlideShowNextSlide”更好用。

rainloving 发表于 2016-4-12 16:12:25

谢谢,我对PPT的VBA不是很懂,麻烦你能不能写个例子。

lk5158130 发表于 2016-4-12 16:33:34

做了一个例子(见附件1),供参考。例中除了隐藏第1-4张幻灯片外,还对剩余幻灯片的设置进行了一些修改。
注意,例中的代码是为AutoEvents加载宏中的事件写的,所以必须先下载它(见附件2)并在PPT中加载。(PPT本身无自动宏。)
我对VBA也是一知半解,例子中的代码大多来自PPT的VBA帮助。欢迎各位路过的朋友一起讨论。

user_afiib 发表于 2016-4-12 16:56:14

谢谢cqdanielzh朋友,PPT论坛中对VBA应用的例子很少,可能是用的人比较少。
页: [1]
查看完整版本: [求助]第一次显示全部......