PowerPoint中用VBA实现Flash动画的快速插入

来源 :中国教育信息化·基础教育 | 被引量 : 0次 | 上传用户:TDH39520007
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘 要: 由于利用PowerPoint提供的插入控件的方法来插入Flash动画比较复杂,本文利用VBA的强大功能,通过Win32 API调用Windows内置的对话框实现了Flash动画插入操作的自动化,提高了工作效率。
   关键词:PowerPoint;VBA;Flash;宏
   中图分类号:TP311文献标识码:B 文章编号:1673-8454(2008)20-0056-02
  
  一、问题的提出
  
  
  在PowerPoint下新建一个幻灯片文件,然后依次选择菜单“工具”→“宏”→“Visual Basic 编辑器”,如图1所示,在“Microsoft Visual Basic”窗口下再单击菜单“插入”→“模块”,在当前工程下添加一个模块,进入VBA编辑环境,将下列VBA代码复制到右侧编辑窗口中。
  
  Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
  "GetOpenFileNameA" (pOpenfilename As openfilename) As Long
   Type openfilename
   lstructsize As Long
   hwndowner As Long
   hinstance As Long
   lpstrfilter As String
   lpstrcustomfilter As String
   nmaxcustfilter As Long
   nfilterindex As Long
   lpstrfile As String
   nmaxfile As Long
   lpstrfiletitle As String
   nmaxfiletitle As Long
   lpstrinitialdir As String
   lpstrtitle As String
   flags As Long
   nfileoffset As Integer
   nfileextension As Integer
   lpstrdefext As String
   lcustdata As Long
   lpfnhook As Long
   lptemplatename As String
  End Type
  
  Sub InsertFlash()
   Dim OpenFile As openfilename
   Dim fname As String
   OpenFile.lstructsize = Len(OpenFile)
   OpenFile.lpstrfilter = "FlashFile(*.swf)|*.swf"
   OpenFile.lpstrfile = Space(254)
   OpenFile.nmaxfile = 255
   OpenFile.lpstrfiletitle = Space(254)
   OpenFile.nmaxfiletitle = 255
   OpenFile.lpstrinitialdir = "d:\"
   OpenFile.lpstrtitle = "Open File"
   OpenFile.flags = 0
   fname = GetOpenFileName(OpenFile)
  If fname >= 1 Then
  fname = OpenFile.lpstrfile
  fname = Dir(fname, vbNormal)
  ActiveWindow.Selection.Slide Range.Shapes.AddOLEObject(_
  Left:=200#, Top:=200#, Width:=200#, Height:=200#, _
  ClassName:="ShockwaveFlash.Shoc kwaveFlash", Link:=msoFalse).Select
   Set swfObject = ActiveWindow.Selection._
  SlideRange.Shapes("Shockwave Flash1").OLEFormat.Object
   swfObject.Movie = fname
  swfObject.Playing = True
  Else
   MsgBox "Not found swf file,cancel was pressed!"
  End If
  End Sub
  
  Sub auto_open()
  Set newmenu = CommandBars.ActiveMenuBar._
   Controls.Add(Type:=msoControl Popup, temporary:=True)
  newmenu.Caption = "插入Flash文件"
  Set enu = newmenu.Command Bar. Controls.Add(Type:=msoControl Button)
  With enu
   .Caption = "打开Flash文件"
  .Style = msoButtonIcon And Caption
  .OnAction = "InsertFlash"
  .BeginGroup = True
  End With
  End Sub
  首先运行刚才的宏,单击菜单“工具”→“宏”→“宏”,打开“宏”对话框,如图2所示,选中“宏auto_open”,然后单击“运行”按钮,在当前菜单下自动生成自定义菜单“插入Flash文件”,单击菜单“插入Flash文件”→“打开Flash文件”,打开对话框,浏览文件夹找到需要插入的Flash动画文件,最后单击“打开”即可将所选择的Flash动画文件插入到当前幻灯片中。
  
   四、制作加载宏
  
  关闭VBA编辑器,单击“文件”菜单下的“另存为”按钮,打开“另存为”对话框,将“保存类型”设置为“PowerPoint加载宏(*.ppa)”,然后取名“InsertFlash”保存。
   加载宏文件(*.ppa)保存在“C:\Documents and Settings\XXX\App -lication Data\Microsoft\AddIns”文件夹(其中“XXX”为用户名),若需要在其它电脑上插入Flash动画文件,只需将上述加载宏文件复制到其它电脑上与上述文件夹同名的文件夹中,单击“工具”菜单下的“加载宏”打开“加载宏”对话框,单击“添加”按钮,浏览文件夹打开加载宏文件InsertFlash.ppa,如图3所示,加载宏文件会自动添加一个名为“插入Flash文件”的菜单栏,并在该菜单栏下添加一个名为“打开Flash文件”的菜单项。若不用加载宏时可选中加载宏单击“卸载”即可。
  在当前幻灯片下插入一个Flash动画文件,单击自定义菜单“插入Flash文件”→“打开Flash文件”,打开一个对话框,浏览文件夹找到所需插入的Flash动画文件,最后单击“打开”,即可将所选择的Flash动画文件插入到当前幻灯片中。
  
   五、注意事项
  
  系统自动插入的ShockwaveFlash控件的大小是固定的,可根据实际情况拖动控件改变大小。
  在幻灯片中插入Flash动画前,新建的PowerPoint文件一定要与Flash的动画文件存放在同一个文件夹下面,否则会因为路径问题而影响动画的播放。
  若无法加载宏,请单击“工具”→“宏”→“安全性”,将“安全级”设为“低”即可。
  有些杀毒软件默认情况下是不允许调用API函数的,如网络版卡巴斯基5.0的“配置实时扫描”中的“宏”选项卡的“对可疑宏的处理动作”中有一项“正在调用API函数”,在默认状态下是“阻止宏命令执行”的,双击此状态,选择“允许宏命令执行”即可取消杀毒软件对“调用API函数”的阻止。
  
   六、结论
  
  由于利用PowerPoint提供的插入控件的方法来插入Flash动画的步骤比较复杂,容易忘记。本文利用VBA的强大功能,通过Win32 API调用Windows内置的对话框实现了插入Flash动画操作的自动化,简化了步骤,提高了工作效率,而且讲解了将宏制作成“加载宏”的具体方法,方便了宏代码的移植使用。
其他文献
“啊——”老师的话音没落,同学们就不约而同地叫了起来。没想到,老师今天竟然布置了口语交际的作业。一向胆怯的我,也跟着犯难起来。  “惨了惨了……”我一边翻书,一边嘴里像唐僧念经一样嘀咕着,脑海中回想起上次口语交际那尴尬的场面:我机器人一般地念完稿子,声音和蚊子的差不多。一读完,老师立马摇头,还大声宣布“80分”这种惨不忍睹的分数,让我差点儿没被全班同学笑死。一想到这里,我暗暗下定决心,一定要在这次
小麦壳是一个十四岁的男孩,从小父母双亡,和十八岁的哥哥大麦壳住在禾城。禾城很漂亮,靠海,一年四季气候宜人,是个远近闻名的旅游城市。  兄弟俩相依为命,大麦壳在街上开出租车,小麦壳在海边为游客划船。  小麦壳是个开朗的孩子,很喜欢与人交谈。不管拉上什么游客,他都会问对方:“请问你从哪儿来?那是个怎样的地方?能讲讲吗?我爱听!”  游客们被小麦壳的热情感染,聊着聊着,就把自己的事情竹筒倒豆子一般倒了出
现在资讯发达,经常会有热心的“厨艺达人”在网络上分享美食经验、教程及实物图。各位“小当家”,在对着屏幕欣赏和流口水之余,别忘了到厨房里实践一把哟!更重要的是,来这里秀出自己的作品呀!  材料准备:牛奶50克,鸡蛋4个,面粉100克,盐5克,白砂糖80克(根据自己的口味适量增减),植物油适量,白醋适量,打蛋器1个,无水无油的盆子2个。  把蛋清和蛋黄分开,分别放在两个无水无油的盆子里。  在蛋黄里加
为讲好四川脱贫攻坚故事,展现我省脱贫攻坚丰硕成果和全面小康路上的生动图景,培养实现第二个百年奋斗目标、建设社会主义现代化强国的生力军,四川省少工委、四川省青少年社会教育服务中心、《红领巾》杂志共同开展了“喜看家乡新变化 我是小小记录员”时代记录活动。现在,大家一起来看看“红粉”们踊跃投来的精彩作品吧!  成都变了  四川省成都市盐道街小学卓锦分校四(1)班 罗文彤  “晓看红湿处,花重锦官城”,
你是否刚刚开始养宠物,对于宠物是否还是有许多未知,那就来这里,同我们一起交流养宠物的乐趣与感动吧!这里是宠物及其主人的快乐家园。  非白的烦恼  非白到家几个月了,可还是很小只。  老姐终于带我打完了所有疫苗。某个周末的早上,睡眼蒙眬中,我被她轻轻抱起。接着,我被带到了一个完全陌生的地方!这里有好多汪汪汪的叫声,还有哗啦啦的水声。恐慌中,我还看到了地上有很多黃色、黑色、白色、棕色或灰色的毛毛。  
我有一个幸福的家庭。爸爸妈妈经常带我外出参观游览,让我学到了许多有趣的知识。这不,他们又把我带到了四川科技馆参观学习,还让我参加了一次有趣的“闯关”活动。  说到四川科技馆,我的老爸特别自豪和激动。他曾经是一名乡村教师,在十年前,看到乡下的孩子很少有机会去城里见识,于是,他带着很多学生第一次到成都,第一次到科技馆,感受到了数不清的现代科技知识。  如今,爸爸把我也带到了四川科技馆,我立刻就被震撼了
造句  语文课上,老师让同学们用“有……有……还有……”造句。  一学生高高地举手,然后站起来,说:“昨天去奶奶家,奶奶给了我一个鸡腿。我吃完后问奶奶还有吗,奶奶说有、有,还有!”  生成什么  这天,明明在学校上完科学课后,兴致勃勃地回到家,问正在做饭的妈妈:“妈妈,我来考考你,铁与水在高温环境下发生反应,会生成什么?”  妈妈看了看眼前的铁锅,不假思索地说:“生成开水呗!”  (铁与水在高温条
(英)阿瑟·柯南·道尔 原著 洋洋兔 编绘  真没想到,我们能在这冰天雪地里遇见和蓝宝石案有关的人。  赖德曾对警方说,蓝宝石失窃的当天,他领着工人,到伯爵夫人的房间修壁炉栅栏。这期间,他有事离开了房间一阵儿,回来时就发现首饰盒被撬了,蓝宝石不翼而飞,工人也不见了踪影。  虽然现在还不能确定赖德和盗窃案是否有关,但我想,我们已经离真相越来越近了。  由于赖德自首,女仆凯瑟琳被逮捕,那位工人被释
2020年注定是不平凡的一年。大家还来不及沉浸在喜气洋洋的节日气氛里,武汉已开始了一场没有硝烟的战争,战火很快蔓延至全国。  妈妈在医院上班,爸爸在政府行政部门上班,为了我的安全着想,爸爸妈妈就把我送到了姑姑家。刚到姑姑家的第二天,这场没有硝烟的战争在我们小县城也打响了。  姑姑家住的楼层很高,我每天趴在飘窗上往下看。我看见,街上的行人很少,并且都匆匆忙忙的,每一个人都戴上了口罩;我看见,清洁工阿
降低后期打印成本,是近一两年来打印市场的热门话题。其实,早在去年9月,惠普公司就已经敏锐地把握住“后期节省”这一市场趋势,推出了“惠省”系列打印机,以低至1毛钱的打印成本开启了一个原装打印的新时代。一年来,越来越多的用户逐渐意识到“后期节省”的重要性,整个市场也更加期待着更多拥有“后省”特性的产品出现。  满足后省需求, “惠省”系列再推新品  2009年9月,全球打印及成像行业的领航者惠普公司针