开启左侧

在PowerPoint中使用VBA制作课件实现高级交互功能

[复制链接]
etthink 发表于 2009-12-11 20:17:37 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
PowerPoint中的VBA可以实现很多复杂的交互,其强大的编程能力让课件的制作简单快捷。制作出来的PPT课件具有交互性和灵活性,并且使课程教学富有生动性和趣味性。本文简要介绍一些基础知识:
*** VBA是什么?
 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言----VisualBasic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC的子集.实际上VBA是寄生于VB应用程序的版本.
*** VBA如何用?
一、宏

     在PowerPoint中,我们可以通过录制宏,来帮助我们自动完成一系列操作。
  1、执行“工具→宏→录制新宏”命令,打开“录制新宏”对话框,输入一个名称,按下“确定”按钮进行录制。
  2、根据你的需要,将要录制的过程操作一遍,然后按下“停止录制”按钮,退出录制状态。
  3、执行“工具→宏→宏”命令,打开“宏”对话框,双击其中的宏,即可运行该宏。

    现在我们就来具体演示并录制一个“宏”,首先按照上面的描述进入到录制状态,然后点击“插入”—“图片”—“来自文件”命令,然后选择一个图形文件,将这个文件插入到Powerpoint的文稿中,接着选择这个插入的图片,将当前这个图片移动到某个位置,如果觉得图片放置的位置不合适,我们可以多次调整这张图片的位置和大小,直到你认为这个图片达到最合适的位置和大小,最后当你点击“停止录制”按钮了。之后点击键盘“ALT+F11”,就可以进入到VBE即VB编辑器中,双击左侧的模块名或“查看代码”工具打开代码窗口。
     以下就是我录制的“宏”程序代码,在这里可以看到有很多无用的代码,这些代码是我在调整图片位置时记录下来的,因此我们可以删除这些不需要的代码,并直接将位移量及尺寸大小的数赋给相应的代码中,这样做可以大大提高该“宏”的运行速度。
Sub Macro1()
'
' 宏由 xyz 记录,日期: 2009-12-6
'

   ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:="E:\图片\001.jpg", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=-23,Top:=-17, Width:=768, Height:=576).Select
     With ActiveWindow.Selection.ShapeRange
         .IncrementLeft -166#
         .IncrementTop 83.88
     End With
     With ActiveWindow.Selection.ShapeRange
         .IncrementLeft 190#
         .IncrementTop 68#
     End With
End Sub

   为了防止宏病毒,Powerpoint提供了安全选项(该命令也是所有OFFICE组件的通用命令,如果在Powerpoint中修改了这里的设置,那么也会影响到其它OFFICE组件程序的“宏”设置。),这就是:“安全性”,好我们点击菜单“工具”—“宏”—“安全性”,会弹出一个“安全性”对话框,一般选择“中”安全级就可以了。
     我们还可以在“VBE”中插入一个或多个“窗体”,方法是点击:菜单“插入”—“用户窗体”,之后在“窗体”窗口中放置一些控件,如“按钮”、“列表”、“单选框”、“复选框”等ActiveX控件,然后我们双击这些控件就可以编写这些控件的程序代码了。

  二、VBA
1. 显示控件工具箱
      在PowerPoint中选择菜单“视图/工具栏/控件工具箱”。 
2. 控件工具箱中常用按钮的介绍 
 (1)复选框(CheckBox):可以选择多个选项,常用来设计多选题;
  (2)文本框(TextBox):可以输入文本,常用来设计填空题;
  (3)命令按钮(CommandButton):用来确定选择或输入,也可设计超级链接;
   (4)单选框(OptionButton):只能选中一个选项,常用来设计单选题或判断题;
  (5)标签(Label):用来显示文字信息。
3. 插入控件的方法
  单击控件工具箱上的工具按钮,然后在幻灯片中拖动到适当大小即可。
4. 进入VBA的方法
  双击幻灯片中的控件或用菜单命令“工具/宏/Visual basic编辑器”即可进入VBA编程状态。
5. 控件的主要属性及设置方法
  进入VBA后,需要在“属性”窗口中对控件的属性进行设置。如果没有出现“属性”窗口,按F4键即可调出该窗口。下面我们就不同的控件,来说明常用属性的设置方法。
  (1)复选框
  AutoSize:有两个值,True表示根据字的多少调整复选框的大小,False表示复选框为固定大小;BackColor:设置复选框的背景颜色,单击该属性框出现下拉按钮,选择“调色板”选项卡后选择颜色;Caption:控件的名称,把默认值删除再重新输入新名称;Font:设置字体、字号及字形,单击该属性框出现按钮,单击该按钮出现字体对话框,再在对话框中设置;Forecolor:设置字的颜色,设置方法同BackColor;Height:复选框的高度,直接输入数字即可;Width:复选框的宽度,直接输入数字即可;Value:复选框的值,True为选中,False则相反。
  (2)文本框
  AutoSize、BackColor、Font、ForeColor、Height、Width等属性的设置方法同复选框;Value:文本框的值,用来保存输入的文本;TextAlign:设置文本对齐方式。
  (3)单选框
  属性设置同复选框。
  (4)标签
  除Value外,其他同复选框。
  (5)命令按钮
  同标签。
  6. 消息框MsgBox的功能
  我们常用消息框显示一些交互的信息,消息框用下面的语句可实现:
  Msgbox("这是一个例题",VbYesNo,"示例")

示例1:用VBA实现文字随意拖
     1.在PPT中新建空幻灯片。
  2.选择"视图→工具栏→控件工具箱"菜单,打开控件工具箱。
  3.点击控件工具栏的"标签"控件,在空幻灯片中拖出标签对象Label1。然后点击控件工具栏的"属性"按钮,打开属性栏,设置Label1的Caption、Font、ForeColor、BackStyle等属性。
   4. 添加代码
  双击Label,或选择"工具→宏→Visual basic编辑器"菜单,打开VBA,选择Label1对象,再选择对应的MouseDown、MouseMove和MouseUp事件,加入以下代码:

Dim X1, Y1 As Integer, Down As Boolean  '设置全局变量,X1、Y1等为Label1等对象的初始坐标值

Private Sub Label1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     If Not Down Then
         X1 = X
         Y1 = Y
         Down = True
     End If
End Sub

Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'如果鼠标已按下,设置Label1新的坐标值
     If Down Then
         Label1.Left = Label1.Left + X - X1
         Label1.Top = Label1.Top + Y - Y1
         X1 = X
         Y1 = Y
     End If
End Sub

Private Sub Label1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
     Down = False
     SlideShowWindows(1).View.First '刷新屏幕,使用PowerPoint XP/2003时加入此句
End Sub
    按F5放映幻灯片。怎么样,幻灯片中的文字是不是可以随心所欲地拖动了?

示例2:用VBA画曲线
点击控件工具栏的"按钮"控件,添加一个按钮,双击加入以下代码:
Private Sub CommandButton1_Click()
' 绘钻石()
Dim x(50), y(50), Xc, Yc, tt, n, r, i, j
     Xc = 320
     Yc = 240
     r = 200
     n = 21
     tt = 2 * 3.14159 / n
     For i = 0 To n - 1
         x(i) = Xc + r * Cos(i * tt)
         y(i) = Yc - r * Sin(i * tt)
     Next i
     For i = 0 To n - 2
         For j = i + 1 To n - 1
             ActivePresentation.SlideShowWindow.View.DrawLine x(i), y(i), x(j), y(j)
         Next j
     Next i
End Sub

PowerPoint vba开发对象详解
     1.Application对象
     该对象代表PowerPoint应用程序,通过该对象可访问PowerPoint中的其他所有对象。
  (1)Active属性:返回指定窗格是否被激活。
  (2)ActivePresentation属性:返回Presentation对象,代表活动窗口中打开的演示文稿。
  (3)ActiveWindow属性:返回DocumentWindow对象,代表当前文档窗口。
  (4)Presentations属性:返回Presentations集合,代表所有打开的演示文稿。
  (5)SlideShowWindows属性:返回 SlideShowWindows集合,代表所有打开的幻灯片放映窗口。
  (6)Quit方法:用于退出PowerPoint程序。
  2.DocumentWindow对象
  该对象代表文档窗口。使用“Windows(index) ”语法可返回DocumentWindow对象。
  (1)ActivePane属性:返回Pane对象,代表文档窗口中的活动窗格。
  (2)Panes属性:返回Panes集合,代表文档窗口中的所有窗格。
  (3)ViewType属性:返回指定的文档窗口内的视图类型。
  3.Presentation对象
  该对象代表演示文稿,通过“Presentations(index)”语法可返回Presentation对象。
  (1)BuiltInDocumentProperties属性:返回DocumentProperties集合,代表演示文稿的所有文档属性。
  (2)ColorSchemes属性:返回ColorSchemes 集合,代表演示文稿的配色方案。
  (3)PageSetup属性:返回PageSetup对象,用于控制演示文稿的幻灯片页面设置属性。
  (4)SlideMaster属性:返回幻灯片母版对象。
  (5)SlideShowSettings属性:返回SlideShowSettings对象,代表演示文稿的幻灯片放映设置。
  (6)SlideShowWindow属性:返回幻灯片放映窗口对象。
  (7)AddTitleMaster方法:为演示文稿添加标题母版。
  (8)ApplyTemplate方法:对演示文稿应用设计模板。
  4.SlideShowWindow对象
  该对象代表幻灯片放映窗口。
  IsFullScreen属性:用于设置是否全屏显示幻灯片放映窗口。
  5.Master对象
  该对象代表幻灯片母版、标题母版、讲义母版或备注母版。
  TextStyles属性:为幻灯片母版返回TextStyles 集合,代表标题文本、正文文本和默认文本。
  6.Slide对象
  该对象代表幻灯片。
  (1)SlideID属性:返回幻灯片的唯一标识符。
  (2)SlideIndex属性:返回幻灯片在Slides集合中的索引号。
  7.SlideShowView对象
  该对象代表幻灯片放映窗口中的视图。
  (1)AcceleratorsEnabled属性:用于设置是否允许在幻灯片放映时使用快捷键。
  (2)CurrentShowPosition属性:返回当前幻灯片在放映中的位置。
  (3)DrawLine方法:在指定幻灯片放映视图中绘制直线。
  (4)EraseDrawing方法:用于清除通过DrawLine方法或绘图笔工具在放映中绘制的直线。
  (5)GotoSlide方法:用于切换指定幻灯片。

     想做专业级的PPT课件,想在大赛中获奖,建议学习VBA、Flash实现交互的多功能,学习PHOTOSHOP练习美功,学习VC调用系统功能,学习SQL、ASP实现远程教育课件。可以参考以下文章:1 PPT设计及其他,2用VBA实现课件中的智能交互
学教育技术,上教育技术论坛!http://www.etthink.com

精彩评论1

正序浏览
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


11关注

462粉丝

7846帖子

推荐阅读更多+
会员达人更多+
广告位

最新信息

更多+

关注我们:教育技术人

官方微信

官方微博

教育技术热线:

13955453231

学教育技术,上教育技术论坛!

教育技术论坛征稿范围:教育技术应用案例、教程文章、优秀作品等。

Email:sf@etthink.com

Copyright   ©2007-2026  应用思考-教育技术论坛  Powered by©Discuz!  技术支持:且行资源    ( 皖ICP备10014945号-4 )