Powerpoint中的高级编程技巧

时间:2022-08-29 09:13:52

Powerpoint中的高级编程技巧

摘 要:本文论述了通过编程在PowerPoint中实现特定目的演示的技巧。

关键词:PowerPoint,VBScript

中图分类号:TP317

在PowerPoint幻灯片的制作中,我们常常需要达到特定的演示效果。比如演示者需要显示和隐藏特定的图片或者区域,给需要强调的部分加边框或者变颜色,动态模拟一些特殊效果等等,可以通过不同的方式来实现。一般常见的方法是在PowerPoint中设置动画属性来实现,可是有时候设置动画属性满足不了一些要求。也可以通过加载控件或者在VBscript中加载窗口来实现,但是效果欠佳。最灵活但是也是最复杂的方法是直接在PowerPoint的幻灯片中加图片或者文字,通过VBA程序改变它们在PowerPoint中的属性,或应用其本身的方法来实现特定的演示效果。

下面我们看怎样通过第三种方法来实现图片的淡出。

首先,定义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)

'Powerpoint跳转

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

具体应用就是把开启定时器与对象的动作挂接就可以了,通过同样的方法也可以实现其他对象的淡入淡出。

这里有一个问题需要重视,即如何获取PowerPoint中对象的ID,笔者的做法是在对象属性的Web页中的可选文字中加入需要标记的文字,如下:

然后通过程序来获取该对象的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

有了对象ID就可以随心所欲地通过编程应用该对象丰富的属性和方法来达到所需要的效果。

比如,如下程序在演示初始时隐藏我们标记的特定对象。

'显示背景图片

ActivePresentation.Slides(IIISlides).Shapes(1).Visible = msotrue

‘在第5张幻灯片中隐藏标记文字的开始写了’PS’

for IIIFOR=1 to ActivePresentation.Slides(5).Shapes.Count

if left(ActivePresentation.Slides(IIISlides).Shapes(IIIFOR).AlternativeText,3)="PS" then

ActivePresentation.Slides(5).Shapes(IIIFOR).Visible = msoFalse

end if

next

笔者经常为企事业单位制作PowerPoint,对于演示者所需要的一些特定的演示效果,笔者也是习惯于通过程序来解决,效果非常不错。

参考文献:

[1]王娟.基于PowerPoint的CAI课件开发及实例[J].计算机光盘软件与应用,2013(03):215+217.

[2]神伟.巧用PowerPoint触发器设计交互性测试题[J].计算机光盘软件与应用,2012(14):218.

作者简介:任利萍(1975.11.6-),女,主要研究方向:企业应用系统的设计开发、网站架构和应用。

作者单位:中国石油新疆油田公司供水公司信息档案管理站,新疆 克拉玛依 834000

上一篇:MVC设计模式中的“视图模型”与“视图” 下一篇:C语言中指针教学之我见