讓PPT接受宏
PPT內置了VBA編輯器,利用它可以擴展PPT的功能。由於VBA代碼特別是用VBA編制的宏病毒代碼會對PPT的安全性構成威脅,因此在高安全等級下PPT將拒絕執行VBA。
在確保VBA代碼來源合法和運行無害的前提下,需要降低PPT的安全等級以使VBA代碼得以執行。選擇"工具→宏→安全性"菜單,將安全級別設為"低",同時將"可靠發行商"頁下的"信任對於Visual Basic項目的訪問"項勾選。
創建PPT
1.在PPT中新建空幻燈片。
2.選擇"視圖→工具欄→控件工具箱"菜單,打開控件工具箱。
3.點擊控件工具欄的"標簽"控件,在空幻燈片中拖出標簽對象Label1。然後點擊控件工具欄的"屬性"按鈕,打開屬性欄,設置Label1的Caption、Font、ForeColor、BackStyle等屬性。
4.點擊"圖像"控件,在幻燈片中添加圖像對象Image1。在Image1的屬性欄中,設置它的AutoSize、Picture屬性,加入圖片文件並讓圖像對象適應圖片的大小。TW.wInGWiT.cOM
添加代碼
雙擊Label,或選擇"工具→宏→Visual basic編輯器"菜單,打開VBA,選擇Label1對象,再選擇對應的MouseDown、MouseMove和MouseUp事件,加入以下代碼:
Dim X1, X2, X3, X4, X5, X6 As Integer, Y1, Y2, Y3, Y4, Y5, Y6 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
為Image1加入以下VBA代碼:
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Not Down Then
X4=X
Y4=Y
Down = True
End If
End Sub
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'如果鼠標已按下,設置Label1新的坐標值。
If Down Then
Image1.Left=Image1.Left+X-X4
Image1.Top=Image1.Top+Y-Y4
X4=X
Y4=Y
End If
End Sub
Private Sub Image1_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
這兩段VBA代碼並不復雜,稍有VB基礎的讀者一看便懂,這裡就不詳加解說了。需要指出的是,以上代碼也可在PowerPoint 97/2000中正常執行。
調試執行
Label1和Image1的VBA代碼都輸入完成並調試無誤後,按F5放映幻燈片。怎麼樣,幻燈片中的圖像和文字是不是可以隨心所欲地拖動了?
這個示例比較簡單,但其原理可作為實現更復雜操控效果的基礎。一個熟悉PowerPoint VBA的人,基於此示例設計出類似於空當接龍那樣的撲克游戲亦並非難事。不信,你也動手試試?看看PPT到底還有多少功能尚未挖掘出來。
From:http://tw.wingwit.com/Article/Software/201309/345.html