我想在打开Power Point演示时运行VBA代码

时间:2018-06-16 12:44:20

标签: vba powerpoint

我试图弄清楚当演示文稿打开时,我可以在我的某个功能点演示文稿中随机播放幻灯片。

我有代码,但试图找出如何让它作为电源点工作没有事件处理程序。我尝试了不同的解决方案,但无法让它发挥作用。

我尝试过使用auto_open加载项以及不同的代码,但没有运气,感谢任何帮助

我想在用户打开演示文稿时运行的代码:

Sub shuffleRange()

Dim Iupper As Integer
Dim ilower As Integer
Dim ifrom As Integer
Dim Ito As Integer
Dim i As Integer

Iupper = 21
ilower = 2

If Iupper > ActivePresentation.Slides.Count Or ilower < 1 Then GoTo Err

For i = 1 To 2 * Iupper
Randomize
ifrom = Int((Iupper - ilower + 1) * Rnd + ilower)
Ito = Int((Iupper - ilower + 1) * Rnd + ilower)
ActivePresentation.Slides(ifrom).MoveTo (Ito)

Next i

Exit Sub

错误:     MsgBox“Shuffle failed”,vbCritical

End Sub

2 个答案:

答案 0 :(得分:0)

未经测试并从其他网站刷过,但下面是随机化幻灯片的片段。至于在启动时运行,我没有代码答案,但如果你用一个开始游戏/学习抽认卡/(无论你的是什么)按钮运行宏并关闭单击前进幻灯片怎么办? ?

Sub sort_rand()

Dim i As Integer
Dim myvalue As Integer
Dim islides As Integer
islides = ActivePresentation.Slides.Count
For i = 1 To ActivePresentation.Slides.Count
    myvalue = Int((i * Rnd) + 1)
    ActiveWindow.ViewType = ppViewSlideSorter
    ActivePresentation.Slides(myvalue).Select
    ActiveWindow.Selection.Cut
    ActivePresentation.Slides(islides - 1).Select
    ActiveWindow.View.Paste
Next

End Sub

答案 1 :(得分:0)

Auto_Open子例程将在包含它的加载项加载时运行,但在包含它的表示打开时不会运行。

如果您可以在用户的​​系统上安装加载项,则加载项可以为Presentation Open事件设置事件陷阱,检查新打开的演示文稿中的某些功能(名称,已知形状的存在)在幻灯片/主人,标签上),将其标识为&#34;您的&#34;演示文稿,如果是,请运行现有代码。

谷歌搜索&#34; powerpoint事件&#34; (没有引号)会更多地指出vba中的事件处理程序代码