国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

在PowerPoint中利用VBA制作導(dǎo)航菜單

2009-09-29 08:16

吳 鋒

摘 要:本文應(yīng)用VBA語(yǔ)言,提出了在PowerPoint中制作導(dǎo)航菜單的設(shè)計(jì)思路和實(shí)現(xiàn)方法,并詳述了關(guān)鍵技術(shù),從而為高水平課件的制作提供指導(dǎo)。

關(guān)鍵詞: VBA;PowerPoint;導(dǎo)航菜單

中圖分類號(hào):G433 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1673-8454(2009)16-0066-03

一、VBA簡(jiǎn)述

Visual Basic For Applications(VBA)是微軟在其開(kāi)發(fā)的應(yīng)用程序中共享的通用自動(dòng)化語(yǔ)言。它本身由應(yīng)用程序控制,同時(shí)又反過(guò)來(lái)增強(qiáng)應(yīng)用程序的功能。這種功能的實(shí)現(xiàn)通過(guò)宏來(lái)完成。宏是由一系列命令和指令組合而成的命令集,其本質(zhì)是VBA代碼組成的程序。

在PowerPoint中宏的使用、創(chuàng)建和運(yùn)行方法參見(jiàn)文獻(xiàn)。[1],[2] 宏代碼的編寫(xiě)可以參考以下三種途徑:

(1)執(zhí)行“工具/宏/錄制新宏”命令,在彈出的“錄制新宏”對(duì)話框中設(shè)置宏名,再點(diǎn)擊“確定”按鈕。這時(shí),PowerPoint將處于錄制狀態(tài), 它能將手工操作記錄下來(lái)并轉(zhuǎn)換為相應(yīng)的代碼。通過(guò)編輯修改記錄下來(lái)的VBA代碼,有助于快速構(gòu)造VBA實(shí)用程序。

(2)執(zhí)行“工具/宏/宏”或“工具/宏/Visual Basic 編輯器”命令,然后按F1查看Microsoft PowerPoint Visual Basic參考。

(3)進(jìn)入微軟官方幫助和支持網(wǎng)站,[3],[ 4] 更詳細(xì)地掌握VBA對(duì)象的屬性和方法。

二、設(shè)計(jì)思路

導(dǎo)航菜單的實(shí)現(xiàn)主要按照如下幾步展開(kāi)設(shè)計(jì):

1.菜單的設(shè)計(jì)

菜單的設(shè)計(jì)包括主菜單和子菜單在顯示組件上的選擇、外觀上的設(shè)計(jì)以及文本的添加等。在顯示組件的選擇上,主、子菜單一律使用繪圖工具欄上的“自選圖形格式/基本形狀”中的矩形作為元素。雖然主(子)菜單也可以采用一行(列)包含不同主菜單項(xiàng)的表格,但是為了用VBA確定對(duì)象的名稱,從而明確地控制各個(gè)對(duì)象,所以我們不使用表格創(chuàng)建菜單。然后對(duì)菜單的外觀,如自選圖形的填充顏色、透明度、線條的顏色、線條的樣式、線條的粗細(xì)等進(jìn)行選擇。最后,再給菜單加上相應(yīng)的文字。

2.菜單位置的設(shè)定

矩形菜單是以自選圖形為元素的,所以菜單在幻燈片中的參考位置是幻燈片的左上角。首先可以利用PageSetup對(duì)象中的SlideWidth和SlideHeight命令獲得和設(shè)置幻燈片頁(yè)面的寬度和高度;其次,利用Top、Left、Width、Height來(lái)設(shè)置主菜單、子菜單的位置及它們的寬度和高度。這樣就實(shí)現(xiàn)了對(duì)菜單在幻燈片中位置的精確控制。

3.子菜單顯隱效果的制作

子菜單顯隱效果的制作分三個(gè)部分。第一,當(dāng)鼠標(biāo)滑入指定對(duì)象,顯隱效果的制作可以直接利用ActionSettings集合對(duì)象中的ActionSetting(ppMouseOver),它表示在幻燈片放映中用戶將鼠標(biāo)滑入指定對(duì)象時(shí)的反應(yīng)。利用上述命令可以指定在幻燈片放映中鼠標(biāo)移過(guò)某形狀時(shí)執(zhí)行宏命令,并在宏命令中用Visible將菜單設(shè)置為可見(jiàn)或不可見(jiàn),這樣就實(shí)現(xiàn)了菜單的顯隱。第二,當(dāng)鼠標(biāo)滑出指定對(duì)象時(shí),因?yàn)镻owerPoint中VBA語(yǔ)言沒(méi)有命令響應(yīng)該動(dòng)作,所以這是顯隱效果制作最關(guān)鍵的一步。為了在鼠標(biāo)滑出時(shí)執(zhí)行相應(yīng)的宏且不影響幻燈片的顯示效果(例如,在窗口添加圖片時(shí),圖片能夠照樣顯示),在菜單的周圍布滿完全透明的矩形框,且將其置為頂層,然后分別利用ActionSetting(ppMouseOver)給每個(gè)矩形框添加隱藏子菜單的宏命令,只要鼠標(biāo)在這些矩形框上移動(dòng),則觸發(fā)已經(jīng)編好的隱藏子菜單的宏命令的執(zhí)行,從而達(dá)到在鼠標(biāo)滑出指定對(duì)象時(shí)隱藏子菜單的目的。第三,為了能對(duì)處于普通視圖狀態(tài)下的幻燈片的子菜單內(nèi)容進(jìn)行編輯,在Visual Basic編輯器窗口執(zhí)行“插入/類模塊”聲明對(duì)象變量,結(jié)合SlideShowEnd命令實(shí)現(xiàn)在幻燈片結(jié)束時(shí)顯示所有子菜單,并利用SlideShowBegin實(shí)現(xiàn)在幻燈片放映時(shí)隱藏所有子菜單。

4.超鏈接的添加

使用 Hyperlink可以將子菜單的每個(gè)矩形框分別鏈接到目標(biāo)對(duì)象,并與其他目標(biāo)對(duì)象(例如,連接到上一章幻燈片)進(jìn)行自由切換。同樣的,我們也可以給文字添加超鏈接,屆時(shí)文字底部將會(huì)出現(xiàn)下劃線(藝術(shù)字除外)。

三、主要實(shí)現(xiàn)代碼

為了利于VBA代碼的編寫(xiě)、調(diào)試和運(yùn)行,在Visual Basic 編輯器狀態(tài)下的工程中,我們添加多個(gè)模塊,每個(gè)模塊完成特定的功能。在菜單欄上選擇“視圖/屬性窗口”可以給定每個(gè)模塊取一個(gè)有意義的名稱。主要模塊1-6的宏名分別為:main、prime_menu、New_submenu1、New_submenu2、Aroundshape_Rec、add_Mcrolink。模塊1實(shí)現(xiàn)調(diào)用并執(zhí)行其它模塊的功能;模塊2主要是建立主菜單;模塊3和模塊4分別用來(lái)建立與不同的主菜單相對(duì)應(yīng)的子菜單;模塊5用來(lái)在菜單的周圍添加透明矩形框;模塊6用來(lái)給主菜單添加宏,控制菜單的顯示和隱藏,并設(shè)置子菜單和透明矩形框在 Z順序中的位置——即指定所指定形狀相對(duì)于其他形狀是在其上層還是在其下層。為了簡(jiǎn)化敘述過(guò)程且不失一般性,以建立一個(gè)分別包含一個(gè)子菜單的兩個(gè)主菜單為例進(jìn)行闡述,如圖1。下面給出主要實(shí)現(xiàn)代碼。

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" & i '命名新建圖形

.Fill.ForeColor.RGB = RGB(255, 0, 0) '設(shè)定填充顏色

.Line.ForeColor.RGB = RGB(255, 255, 0)'設(shè)定線的顏色

End With

Next

'給主菜單1和2添加文本

For Each sh In Slide_index.Shapes

If sh.Type = msoAutoShape Then

If sh.Name = "menu1" Then sh.TextFrame.TextRange.InsertAfter "menu1"

If sh.Name = "menu2" Then sh.TextFrame.TextRange.InsertAfter "menu2"

End If

Next

End Sub

2.給主菜單添加宏

Sub add_Mcrolink()

Dim i As Integer

Dim Around_Rec As Variant

Set Slide_index = ActivePresentation.Slides(1)

'鼠標(biāo)移過(guò)主菜單1時(shí)運(yùn)行宏menu1_Over

With Slide_index.Shapes("menu1").ActionSettings(ppMouseOver)

.Action = ppActionRunMacro

.Run = "menu1_Over"

.AnimateAction = True

End With

ActiveWindow.Selection.Unselect

End Sub

3.控制子菜單的顯示和隱藏

Sub menu1_Over()

Set Slide_index = ActivePresentation.Slides(1)

Set myShape = Slide_index.Shapes("menu1")

'鼠標(biāo)滑過(guò)主菜單1時(shí)發(fā)出打字機(jī)的聲音

myShape.ActionSettings(ppMouseOver).SoundEffect.Name = "打字機(jī)"

'鼠標(biāo)滑過(guò)主菜單1時(shí),顯示主菜單1的子菜單,隱藏主菜單2的子菜單

Slide_index.Shapes("submenu2").Visible = msoFalse

Slide_index.Shapes("submenu1").Visible = msoTrue

Slide_index.Shapes("submenu1").ZOrder msoBringToFront '置于最頂層

End Sub

4.啟動(dòng)幻燈片放映時(shí)發(fā)生的事件

Dim myobject1 As New 類1

Sub StartEvents()

Set myobject1.App1 = Application

End Sub

在新建類模塊1中輸入如下代碼:

Public WithEvents App1 As Application

Private Sub App1_SlideShowBegin(ByVal Wn As SlideShowWindow)

Set Slide_index = ActivePresentation.Slides(1)

Slide_index.Shapes("submenu2").Visible = msoFalse

Slide_index.Shapes("submenu1").Visible = msoFalse

End Sub

完整的代碼在Windows XP操作系統(tǒng)、Microsoft Office PowerPoint 2003下編寫(xiě),并順利運(yùn)行通過(guò)。

四、結(jié)束語(yǔ)

在導(dǎo)航菜單所在頁(yè)中還可以加入圖片、背景色、聲音等元素,豐富幻燈片的效果。需要指出的是,在幻燈片中添加的圖片需要置于透明矩形框的下一層,這樣播放幻燈片才能使鼠標(biāo)觸發(fā)透明矩形框。

參考文獻(xiàn):

[1]程智.用VBA來(lái)提高PowerPoint制作的課件交互性[J]. 中國(guó)電化教育, 2002, (6): 52-53.

[2]吳良海.宏在PPT課件模板實(shí)時(shí)切換中的應(yīng)用[J]. 中國(guó)教育信息化, 2008, (6): 32-33.

[3]http://office.microsoft.com/zh-cn/default.aspx [DB/OL].

[4]http://msdn.microsoft.com/en-us/office/default.aspx[DB/OL].

(編輯:隗爽)

建德市| 泰顺县| 苏州市| 启东市| 扶绥县| 辽宁省| 寻甸| 大余县| 当雄县| 峡江县| 长沙市| 股票| 和硕县| 大兴区| 嘉定区| 望奎县| 井研县| 白水县| 竹北市| 万荣县| 萝北县| 白城市| 泰安市| 阿拉善右旗| 儋州市| 乳山市| 稷山县| 远安县| 镇沅| 甘洛县| 阳新县| 财经| 金寨县| 景洪市| 搜索| 珲春市| 什邡市| 会泽县| 托克逊县| 桐城市| 大同市|