tft每日頭條

 > 生活

 > 怎樣設置ppt自動放映停幾秒

怎樣設置ppt自動放映停幾秒

生活 更新时间:2025-01-01 16:21:55

Hello,大家好,有部份VBA技術愛好者可能在PPT中用過幻燈片的放映和結束放映兩種狀态的VBA觸發事件:一來是幻燈片放映時觸發某種行為,二來是終止放映時又觸發另外的某種行為。這些都是PPT放映過程中起到很好的特效作用。而如果加進了帶延時的Do While循環,如果想結束放映時強制退出這個循環,可不是件容易的事,為什麼說呢?大家如果親自去實踐一下,自然就有所體會。那麼,能否實現解決這個棘手的問題呢?我仔細潛心研究了幾天,總算弄了大概眉目出來了,還是願意跟大家分享一下,也算抛磚引玉吧,如果各位有更好的解決方案方法也請不吝評論回複哦,在此先謝謝了!

好了,不廢話了,我們先還是來一下我們說的技術的知識儲備吧。

一、知識儲備

(一)PPT放映時應該觸發的事件過程

Sub OnSlideShowPageChange()

事件代碼

End Sub

(二)PPT終止放映時應該觸發的事件過程

Sub OnSlideShowTerminate()

事件代碼

End Sub

(三)PPT中的延時過程定義

Sub delay(t As Single)

Dim t1 As Single

t1=Timer

Do

DoEvents'轉讓控制權,讓操作系統執行其他事情

Loop While Timer-t1<t

End Sub

(四)PPT放映狀态屬性捕獲

SlidesShowWindows(1).View.State

如果為1則表示處于放映狀态,為5則表示終止放映狀态

二、以一個指針旋轉作為案例處理過程

(一)在空白幻燈片上繪制一個指針和一個小圓,并通過聯結構成一個真正的指針。

怎樣設置ppt自動放映停幾秒(強制終止PPT放映時啟用帶延時的DO)1

圖1 繪制旋轉的指針

(二)VBA環境下插入一個模塊,并輸入如下代碼

Public shp As Shape, exit_flag As Boolean

Sub OnSlideShowPageChange()

exit_flag = False

Rotate_shape

End Sub

Sub OnSlideShowTerminate()

exit_flag = True

MsgBox "Good bye,see you next time!"

End Sub

Sub Rotate_shape()

Set shp = ActivePresentation.Slides(1).Shapes(1)

Do While exit_flag = False

If SlideShowWindows(1).View.State = 5 Then

shp.Rotation = 0

Exit Do

Else

delay 0.1

shp_offset = Second(Now) * 6

shp.Rotation = shp_offset

End If

Loop

End Sub

Sub delay(t As Single)

Dim t1 As Single

t1 = Timer

Do

DoEvents

Loop While Timer - t1 < t

End Sub

并為這些代碼加必要的注釋,如下截圖所示

怎樣設置ppt自動放映停幾秒(強制終止PPT放映時啟用帶延時的DO)2

圖2 注釋截圖

(三)運行效果界面截圖

1、幻燈片放映時自動啟動指針以秒的時間角度不斷旋轉

怎樣設置ppt自動放映停幾秒(強制終止PPT放映時啟用帶延時的DO)3

圖3 放映時指針旋轉

2、終止幻燈片放映時轉動的動指針歸位的情況

怎樣設置ppt自動放映停幾秒(強制終止PPT放映時啟用帶延時的DO)4

圖4 結束放映時指針歸位

三、VBA方法終止PPT放映時啟用帶延時的循環過程小結

這裡所用的非常關鍵技術是設置一個全局的布爾型公有變量exit_flag作為是否退出放映的狀态;同時用SlidesShowWindows(1).View.State屬性捕獲放映狀态,并根據該狀态特定值做出相應的事件處理。

所以不能簡單地通過結束放映事件OnSlideShowTerminate去用Exit Sub簡單處理哦!

好了,今天就說到這裡,下一個作品将利用這個技術實現PPT放映是自動啟用我們自己設計的鐘表播放哦,希望大家到時候喜歡哦!

最後,還是希望大家點評和關注我的頭條号“跟我學Office高級辦公”哦,謝謝!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved