哈喽,大家好,我们已经用OnTime方法实现“世界杯”倒计时器的设计,感觉它还是蛮神奇的,不是吗?呵呵,今天我们继续分享在PPT里边实现这个倒计时器的设计。
为什么我们还要在PPT里边继续分享这个倒计时器的设计呢?原因有两个:一是PPT里边没有像Excel环境下有OnTime方法方法;二是excel里边的倒计时器从美观角度上讲,不如PPT全屏播放演绎得真实些,而且更贴合在户外LED屏幕的全屏展示。
既然PPT环境下没有OnTime方法方法,该怎么办呢?大慨有两种方法:
一种是调用Win32API系统函数Sleep()作为延时的作用,必须如下申明:
Option Explicit '以显示方式申明以下内容
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) '显示地申明Sleep这个API函数
如下截图所示
二种是我们自行设计一个延时过程方法,这样自行设计的延时方法非常自由,也比较简单。自定义延时方法可以如下截图所示
这样,我们在PPT里边就完全克服了没有Excel环境下的OnTime方法的问题。
好了,不废话了,我们还是以干货的形式给大家分享吧!
一、PPT里边的世界杯倒计时器的前端界面设计
倒计时黑屏幕、四个命令按钮、屏幕外框矩形等。如下图所示
二、倒计时后台窗体界面
插入6个组合框选择列表控件和2个命令按钮。如下图所示
三、倒计时器功能代码实现及前端界面四个表单按钮控件运行宏指定
(一)计时器功能代码实现
1、模块1代码:
'定义公有全局变量幻灯片放映状态标志PPT_Play_State_PPT_Play_State和图形对象shp
Public PPT_Play_State_Flag As Boolean, shp As Shape, End_Date
Public Uload_Form_Flag As Boolean '公有全局变量Uload_Form_Flag为是否卸载关闭窗体的标志,便于回传数据
Public DateTime_Str, yr '公有全局变量DateTime_Str、yr分别为取得的日期时间串、取得的年号,便于回传数据
Sub OnSlideShowPageChange() '幻灯片演示文档开始放映后触发以下行为事件
Set shp = ActivePresentation.Slides(1).Shapes("屏幕")
Slide_Width = ActivePresentation.PageSetup.SlideWidth '获取幻灯片页面宽度
Shp_Width = shp.Width '获取图形“屏幕”宽度
shp.Left = (Slide_Width - Shp_Width) / 2 '精确定位图形“屏幕”在幻灯片中央居中
Call Reset_Countdown_Timer '幻灯片一开始放映即刻复位倒计时器
End Sub
Sub OnSlideShowTerminate() '幻灯片演示文档一旦终止放映后触发以下行为事件
Call Reset_Countdown_Timer '幻灯片一旦终止放映即刻复位倒计时器
End Sub
Sub Main() '“倒计时器”开启的引导主程序
SelectDate_Time_Form.Show
If Uload_Form_Flag = False Then '凡是经过窗体点击了确定后,都强制性将Uload_Form_Flag置为False造 _
成假象窗体未关闭
Call Start_Countdown_Timer
Else
DateTime_Str = "" '一旦取消了倒计时操作后,立即清空日期时间串变量DateTime_Str的值
MsgBox "您取消了实施倒计时器工作的操作!