在PowerPoint中利用VBA制作导航菜单

来源 :中国教育信息化·基础教育 | 被引量 : 0次 | 上传用户:glggg
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文应用VBA语言,提出了在PowerPoint中制作导航菜单的设计思路和实现方法,并详述了关键技术,从而为高水平课件的制作提供指导。
  关键词: VBA;PowerPoint;导航菜单
  中图分类号:G433 文献标识码:A 文章编号:1673-8454(2009)16-0066-03
  
  一、VBA简述
  
  Visual Basic For Applications(VBA)是微软在其开发的应用程序中共享的通用自动化语言。它本身由应用程序控制,同时又反过来增强应用程序的功能。这种功能的实现通过宏来完成。宏是由一系列命令和指令组合而成的命令集,其本质是VBA代码组成的程序。
  在PowerPoint中宏的使用、创建和运行方法参见文献。[1],[2] 宏代码的编写可以参考以下三种途径:
  (1)执行“工具/宏/录制新宏”命令,在弹出的“录制新宏”对话框中设置宏名,再点击“确定”按钮。这时,PowerPoint将处于录制状态, 它能将手工操作记录下来并转换为相应的代码。通过编辑修改记录下来的VBA代码,有助于快速构造VBA实用程序。
  (2)执行“工具/宏/宏”或“工具/宏/Visual Basic 编辑器”命令,然后按F1查看Microsoft PowerPoint Visual Basic参考。
  (3)进入微软官方帮助和支持网站,[3],[ 4] 更详细地掌握VBA对象的属性和方法。
  
  二、设计思路
  
  导航菜单的实现主要按照如下几步展开设计:
  1.菜单的设计
  菜单的设计包括主菜单和子菜单在显示组件上的选择、外观上的设计以及文本的添加等。在显示组件的选择上,主、子菜单一律使用绘图工具栏上的“自选图形格式/基本形状”中的矩形作为元素。虽然主(子)菜单也可以采用一行(列)包含不同主菜单项的表格,但是为了用VBA确定对象的名称,从而明确地控制各个对象,所以我们不使用表格创建菜单。然后对菜单的外观,如自选图形的填充颜色、透明度、线条的颜色、线条的样式、线条的粗细等进行选择。最后,再给菜单加上相应的文字。
  2.菜单位置的设定
  矩形菜单是以自选图形为元素的,所以菜单在幻灯片中的参考位置是幻灯片的左上角。首先可以利用PageSetup对象中的SlideWidth和SlideHeight命令获得和设置幻灯片页面的宽度和高度;其次,利用Top、Left、Width、Height来设置主菜单、子菜单的位置及它们的宽度和高度。这样就实现了对菜单在幻灯片中位置的精确控制。
  3.子菜单显隐效果的制作
  子菜单显隐效果的制作分三个部分。第一,当鼠标滑入指定对象,显隐效果的制作可以直接利用ActionSettings集合对象中的ActionSetting(ppMouseOver),它表示在幻灯片放映中用户将鼠标滑入指定对象时的反应。利用上述命令可以指定在幻灯片放映中鼠标移过某形状时执行宏命令,并在宏命令中用Visible将菜单设置为可见或不可见,这样就实现了菜单的显隐。第二,当鼠标滑出指定对象时,因为PowerPoint中VBA语言没有命令响应该动作,所以这是显隐效果制作最关键的一步。为了在鼠标滑出时执行相应的宏且不影响幻灯片的显示效果(例如,在窗口添加图片时,图片能够照样显示),在菜单的周围布满完全透明的矩形框,且将其置为顶层,然后分别利用ActionSetting(ppMouseOver)给每个矩形框添加隐藏子菜单的宏命令,只要鼠标在这些矩形框上移动,则触发已经编好的隐藏子菜单的宏命令的执行,从而达到在鼠标滑出指定对象时隐藏子菜单的目的。第三,为了能对处于普通视图状态下的幻灯片的子菜单内容进行编辑,在Visual Basic编辑器窗口执行“插入/类模块”声明对象变量,结合SlideShowEnd命令实现在幻灯片结束时显示所有子菜单,并利用SlideShowBegin实现在幻灯片放映时隐藏所有子菜单。
  4.超链接的添加
  使用 Hyperlink可以将子菜单的每个矩形框分别链接到目标对象,并与其他目标对象(例如,连接到上一章幻灯片)进行自由切换。同样的,我们也可以给文字添加超链接,届时文字底部将会出现下划线(艺术字除外)。
  
  三、主要实现代码
  
  为了利于VBA代码的编写、调试和运行,在Visual Basic 编辑器状态下的工程中,我们添加多个模块,每个模块完成特定的功能。在菜单栏上选择“视图/属性窗口”可以给定每个模块取一个有意义的名称。主要模块1-6的宏名分别为:main、prime_menu、New_submenu1、New_submenu2、Aroundshape_Rec、add_Mcrolink。模块1实现调用并执行其它模块的功能;模块2主要是建立主菜单;模块3和模块4分别用来建立与不同的主菜单相对应的子菜单;模块5用来在菜单的周围添加透明矩形框;模块6用来给主菜单添加宏,控制菜单的显示和隐藏,并设置子菜单和透明矩形框在 Z顺序中的位置——即指定所指定形状相对于其他形状是在其上层还是在其下层。为了简化叙述过程且不失一般性,以建立一个分别包含一个子菜单的两个主菜单为例进行阐述,如图1。下面给出主要实现代码。
  1.主菜单的建立
  Sub prime_menu()’添加主菜单1和2
  Set Slide_index = ActivePresentation.Slides(1) ’激活第一张幻灯片
  Dim i As Integer
  For i = 1 To 2
  ’oTop, oLeft, oHeight, oWidth为全局变量, 在模块1中定义和赋值
  With Slide_index.Shapes.AddShape(Type:=msoShapeRectangle, _
  Top:=oTop, Left:=oLeft (i - 1) * oWidth, Width:=oWidth, Height:=oHeight)
  .Name = "menu"
其他文献
为啥快餐店里炸的只是薯条(土豆条),而不是紅薯条?按理说,红薯的含糖量比土豆的高,更甜更好吃啊。但,其中缘由可真不是一个“口感”就能解答的。  红薯的含糖量确实比土豆的高,但也正是因为这个特点,在油炸的时候,红薯更容易粘连,热的红薯条韧性大,可一旦变冷,它就会变得很硬。  而另一个重要的原因则要归结于饮食习惯。炸薯条兴起于西式快餐店,深受西方饮食习惯的影响。从16世纪开始,土豆就抓住了西方人的胃。
微软已经在中国(重点在农村和边远地区)建立100间计算机教室,以支持中国基础教育和师范教育。五年过去,这些项目学校现在是什么情况,设备使用的情况如何?发挥应有的作用了吗?在当地影响怎样?我们将选择12所学校分四期进行连续报道。本期讲述的三所项目学校分别是:甘肃省兰州市第四十六中学、甘肃省天水市麦积区马跑泉中学及甘肃省泾川县王村镇中学。2008年3月2日—3月8日,本刊记者走进甘肃进行实地考察采访。
天,渐渐凉爽起来,吵闹的蝉鸣声离我们远去,只留下夜晚石板缝里蟋蟀的悲鸣。风儿夹杂着丝丝寒意,提醒着人们——秋天到了。    我漫步在秋天的树林,落下的枯叶铺成了金色的路,踩在上面软绵绵的,发出咯吱、咯吱的声音,快乐的我沉浸在深秋的“交响乐”中……  忽然间,啪的一声,我被一个不明物体遮住了眼睛。我小心翼翼地取下来一看,哦,原来是一片叶子啊!它那黑红黑红的叶面和枯萎发黄的叶脉显示出了与秋天抗衡的代价
傍晚,杰克在上班的路上被一个黑衣人拦住了。黑衣人将一顶蓝格帽子塞到杰克的怀里,说:“年轻人,你给100 001个人带去了欢乐,我给你一顶魔法帽,它能帮你实现两个愿望!”  “嘿,这么有创意的推销方式!我买了!”杰克低头掏钱包。当他抬起头,黑衣人却不见了。  “好奇怪!”杰克戴上帽子,自言自语,“当真是魔法帽?那,你让我摔个跟头!”话音未落,他就被石子绊倒了。  “是真的啊!”杰克兴奋极了,心想,“
  
有一个村子叫寂寂村,只住着一户人家,兔妈妈、兔爸爸带着兔哥哥笨笨和兔妹妹跳跳一起生活着。  因为位置偏远,寂寂村很少有别的兔子光临。幸好,笨笨家有一匹马,这是兄妹俩想去外界时唯一的交通工具,他们喜欢骑上马去别的兔村玩。  一天,跳跳不小心从马上摔了下来,摔伤了腿。医生说,跳跳得休息一年才能重新骑马。于是,跳跳只能整天待在家里,透过窗子看着外面的世界。时间长了,笨笨发现,跳跳眼里的伤感越来越浓。  
摘 要:本文结合ASP动态网站开发经验,对ASP程序设计存在的信息安全隐患进行分析,讨论了ASP程序常见的安全漏洞,从程序设计角度对WEB信息安全及防范提供了参考。  关键词:ASP 程序设计 WEB 信息安全   中图分类号:TP311.1文献标识码:A  文章编号:1673-8454(2007)11-0070-02    WWW应用服务,是目前因特网应用最为广泛的服务,随着网络对人们生活方式的
太美了!那么,除了用相机留下这些美景,你还想过用什么方法来保存这美好的景色呢?  用画笔吧!  现在,就准备好你的绘画工具,一起來画一幅美丽的星空吧!!
摘 要:“教”“娱”平衡的角色设计是教育RPG游戏设计要解决的关键问题之一。本文从教育目标的三个维度出发,探讨了教育RPG游戏角色设计的方法,并阐述了教育游戏角色设计的流程,并在此基础上,进行了教育游戏《虎门销烟》的角色设计。  关键词:教育;游戏;角色;RPG   中图分类号:G434 文献标识码:A 文章编号:1673-8454(2008)08-0038-03    任何一款成功的RPG游戏都
安静是一位牧星人。每天晚上,安静都会拿着月光抹布,把每一颗星星都擦得闪闪亮亮的,然后,按照独特的排列规律,将星星们安放在合适的位置上。  通常情况下,星星们都很乖巧,不吵也不闹。偶尔,星星们也会生出一些小情绪,当它们开心时,散发出的光辉格外醒目、耀眼;当它们沮丧时,光辉就会很弱很弱,有时候,甚至几乎看不到光芒。這个时候,牧星人安静就会安慰不开心的星星,唱首歌,讲个故事,或者陪它聊聊天,说说话。被哄