使用VBA自動開啟Office程式
除了在PowerPoint中使用巨集完成例行的工作外,您也可以使用VBA程式與Microsoft Office的其他程式產生互動。例如,建立一個PowerPoint巨集,經由這個巨集從Excel中帶進一些數字,或利用巨集將Word文件放入PowerPoint中。
如何在PowerPoint中使用VBA自動開啟Office其他應用程式,請依照下列的操作步驟錄製一個PowerPoint巨集,將Excel的工作表嵌入到簡報中,並加入程式調整這個嵌入的物件大小,同時並允許使用者在輸入方塊訊息中輸入要嵌入的檔案路徑。在開始錄製前,請先確定這Excel工作表中有現成的資料以方便在PowerPoint放映投影片時顯示出來。
- 在PowerPoint中,切換到一張空白投影片以剛好顯示Excel的工作表,例如,選用一張
在錄製完這個巨集後,請按
Alt+F11 組合鍵開啟Visual Basic編輯器檢視這個巨集的程式碼。當然這個巨集包含您嵌入工作表的路徑:D:\office2000\銷售預估一覽表.xls。而您也會注意到一些數值,其記錄這個嵌入物件的高度及寬度(或許不同)。然而,您的巨集的內容應該與下列所示的程式碼相去不遠。Sub insertworkbook() ' ' 巨集錄製者: John Wu 錄製日期: 1999/10/12 ' ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject(Left:=120#, Top:=110#, Width:=480#, Height:=320#, _ FileName:="D:\office2000\銷售預估一覽表.xls", Link:=msoFalse).Select With ActiveWindow.Selection.ShapeRange .Left = 154.125 .Top = 103.125 .Width = 411.75 .Height = 333.75 End With End Sub
由於這個巨集不需要一些冗長的程式碼,請刪除下列所指定的程式碼(因為這將更容易的調整物件的大小):
With ActiveWindow.Selection.ShapeRange .Left = 154.125 .Top = 103.125 .Width = 411.75 .Height = 333.75
現在您的巨集內容應該與下列所示的程式碼相似吧!
Sub insertworkbook() ' ' 巨集錄製者: John Wu 錄製日期: 1999/10/12 ' ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject (Left:=120#, Top:=110#, Width:=480#, Height:=320#, _ FileName:="D:\office2000\銷售預估一覽表.xls", Link:=msoFalse).Select End Sub
上述的引數
Width 和 Height 是設定 Workbook 物件的屬性,就是設定這工作表。要以手動方式調整工作表的大小,請選取這個物件後,在 編輯 功能表中按一下 工作表 物件 指令(或按一下滑鼠右鍵),再按一下 編輯 指令,此時請拖曳這嵌入物件的 控點 加大或縮小工作表的顯示內容,然後在這物件的外圍按一下滑鼠左鍵結束編輯這個物件。當您插入這個物件後,想要自動顯示較大的嵌入物件,您可以在這個巨集中增加 Width 和 Height 的數值。請注意,如果您是在VGA的顯示模式下,則 Width 和 Height 最大值分別是640與480。如果想要在另一張投影片執行您剛剛所錄製的巨集執行這個巨集,將會插入相同的Excel工作表在這目前的投影片上,因為這是受到
ActiveWindow 這物件的程式碼所影響的。而在某些案例中,這嵌入的工作表有時會顯示出不妥當的形狀,而如果您輸入下列的四列程式碼請立即加在最後一列程式碼之後 End Sub 之前,即可以根據原始大小縮放這個物件以解決前面所提到的問題。With ActiveWindow.Selection.ShapeRange
.ScaleHeight 1, msoCTrue
.ScaleWidth 1, msoCTrue
End With所以您目前的巨集內容,應該下列所示:
Sub insertworkbook()
'
' 巨集錄製者: John Wu 錄製日期: 1999/10/12
'
ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject
(Left:=120#, Top:=110#, Width:=480#, Height:=320#, _
FileName:="D:\office2000\銷售預估一覽表.xls", Link:=msoFalse).Select
With ActiveWindow.Selection.ShapeRange
.ScaleHeight 1, msoCTrue
.ScaleWidth 1, msoCTrue
End With
End Sub如果要讓使用者可以在輸入方塊中,自行輸入要嵌入的Excel工作表的檔案路徑,請在這個巨集的註解文字之下加入這幾列的程式碼:
Dim WhichWorkbook As String WhichWorkbook = InputBox(prompt:="請輸入嵌入至簡報的Excel工作表路徑及檔案名稱(.xls).")
請將嵌入Excel工作表的路徑改為
WhichWorkbook 變數,所以現在 FileName 的參數應該如下所示:FileName:=WhichWorkbook
最後,您的巨集內容應該如下所示:
Sub insertworkbook() ' ' 巨集錄製者: John Wu 錄製日期: 1999/10/12 ' Dim WhichWorkbook As String WhichWorkbook = InputBox(prompt:="請輸入嵌入至簡報的Excel工作表路徑及檔案名稱(.xls).") ActiveWindow.Selection.SlideRange.Shapes.AddOLEObject (Left:=120#, Top:=110#, Width:=480#, Height:=320#, _ FileName:=WhichWorkbook, Link:=msoFalse).Select With ActiveWindow.Selection.ShapeRange .ScaleHeight 1, msoCTrue .ScaleWidth 1, msoCTrue End With End Sub
當您完成這個巨集後,請在
檔案 功能表中按一下 關閉並回到Microsoft PowerPoint 指令。請切換到另一張投影片,然後執行
insertworkbook 巨集,此時將會出現 輸入訊息方塊 ,請輸入要嵌入的Excel工作表檔案路徑,但別忘了要加上.xls副檔名。注意 |
如果想要在PowerPoint中建立自動的解決方案對策,請參閱:
|