幻灯片里的定时器

  在幻灯片里有时候会用到定时器,比如我们需要定时执行一些特殊任务,如让一幅图片慢慢地消失或者显现,即淡入淡出,虽然通过设置图片的动画可以做到,但是通过程序可以控制得更为理想。
  首先,定义API
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function SetTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long, _
                             ByVal uElapse As Long, _
                             ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long) As Long

Public TimerID As Long
Public LTimerCount As Long
Public FTMD As Single    '定义通明度

'开启定时器
Sub 开启定时器()
    FTMD = 0#
    LTimerCount = 0
    TimerID = SetTimer(0, 0, 200, AddressOf TimerProc)
End Sub

'定时器执行
Sub TimerProc(ByVal hwnd As Long,ByVal uMsg As Long,ByVal idEvent As Long,ByVal dwTime As Long)
        LTimerCount = LTimerCount + 1
        慢慢消失
        If (LTimerCount >= 12) Then
            TimerID = KillTimer(0, TimerID)
            '幻灯片跳转
            ActivePresentation.SlideShowWindow.View.GotoSlide 3
        End If       
End Sub

'淡出
Sub 慢慢消失()
    If FTMD < 0.99 Then
       FTMD = FTMD + 0.1
    End If
    If FTMD > 1 Then FTMD = 0.99
    ActivePresentation.Slides(1).Shapes(2).Fill.Transparency = FTMD
End Sub


'下面的程序经常用到:即得到对象ID
Dim SObjectWebName As String
Dim i As Integer
Dim FindDestObject As Object

Set FindDestObject = ActivePresentation.Slides(3)

SObjectWebName = "文本显示"
   
For i = 1 To FindDestObject.Shapes.Count
    If FindDestObject.Shapes(i).AlternativeText = SObjectWebName Then
       MsgBox i
       Exit For
    End If
Next


  这样的效果在很多幻灯片中可以用到,比如在开始的时候,标题文字淡出,再淡入,中间用程序更换背景,那么用户看到的就是文字从画面上淡出,再淡入,再进入主题(即可以在主题页面上进行自然切换),效果很好。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值