在早期個人電腦的巨集(macroinstruction術語的縮寫)就是簡單的錄製下一連續的按鍵動作,然後將它指定在某個鍵盤上按鍵,而當按一下這個按鍵就可以再執行一次您所錄製的電腦操作。而Microsoft重新開發及延伸這早期的巨集觀念,而建立一個完全可以編輯程式的巨集程式語言以符合Office應用軟體的需求。之後Microsoft以真實的程式語言VBA融入到巨集的編輯語言中,VBA於是誕生。
巨集語言就是一種程式的語言,它內建在Microsoft Office軟體,以讓您自動完成一連串的工作,而這些工作被組合在一個單一的命令上。巨集的錄製允許您錄製下所需要的程式碼而自動完成一連串的工作。之後,當您再次需要完成這項工作時您可以再執行一次這個巨集。Microsoft Excel、Microsoft Word和Microsoft PowerPoint等應用程式都提供巨集錄製的功能,即VBA程式。
雖然當您使用巨集錄製的一長串的程式碼時您必須要很小心,因為當您錄下巨集的這些程式碼是一個延伸巨集內容很好的開始點。
若要使用PowerPoint的巨集錄製功能,請依照下列的步驟操作:
- 在PowerPoint視窗中請在
圖20-1. 在 錄製巨集 對話方塊中,您可為您所錄製的巨集取個名稱。 |
- 改變巨集名稱以更貼切描述這個巨集的功能。
無論您錄製什麼樣的巨集,只要您希望所錄製的巨集再執行一次,即可以執行這個巨集。在某些案例中,您或許會得到一個錯誤的訊息以指出這個巨集不能完成它試圖執行的命令。有時候像這樣的錯誤訊息產生是因為您正試著再執行一些已經做過的工作。例如,您試著開啟已經被開啟的檔案,或關閉已經被關閉的檔案。所以如果遇上這樣的例子,請先做必要的調整後再執行這個巨集。
若要執行您已經錄製完成的巨集,請依照下列的步驟操作:
- 在
圖20-2.在 巨集 對話方塊中,您可以執行、編輯、建立和刪除巨集。 |
當您錄製完或一個巨集後,您或許想要檢視它的內容,甚至想要編輯它。如何檢視(或修改)這個巨集呢?請依照下列的步驟操作:
- 請在
當您要編輯這個巨集,其實您是在PowerPoint視窗中開啟另一個應用程式─
Visual Basic編輯器 。(您是否注意到這個 Microsoft Visual Basic 視窗已經顯示,而且包含巨集程式的功能表及工具列。)當您第一次編輯這個巨集,這個Visual Basic編輯器視窗將會顯示如下所說明的三個視窗:- Module X(程式碼)
因為您可以排列、放大縮小或關閉這些視窗,所以在您目前所看到的
Microsoft Visual Basic 視窗並不一定如同本書圖20-3所顯示的一樣。想要 關閉專案-VBAProject 視窗,請按一下該視窗右上角 關閉視窗 按鈕。圖20-3.Visual Basic編輯器視窗。 |
若要關閉這個
Microsoft Visual Basic 視窗,請在 檔案 功能表中按一下 關閉並回到PowerPoint 指令,或直接關閉這個視窗。想要看懂VBA程式語言最好的方法是錄製一個簡單的巨集,然後在切換到
Microsoft Visual Basic 視窗瞭解它們的意思。之後您將學習如何寫下一些簡單的式碼。這些範例的程式碼都是簡短的,所以您可以很容易的複製這些程式碼並且在您的電腦上執行它。舉例說明,我們要錄製一個開啟範例簡報檔案的巨集,而這個巨集名稱請取為
開啟範例簡報 ,它的目的是開啟一個PowerPoint現有的檔案。在您錄製巨集前請先開啟一個新簡報檔案(或一個已存在的檔案),並將它儲存在C:\My Documents資料夾,檔案名稱為 範例簡報 。然後請關閉這個檔案,再開啟另一個新簡報檔案要在這個檔案上錄製巨集,但您也可以開啟一個舊檔案錄製巨集。若要錄製這個巨集,請依照下列的步驟操作:
- 請在
如果想要看看您剛剛所錄製的巨集內容,請在
工具 功能表中按一下 巨集 指令,然後在該層選單中再按一下 巨集 指令,然後在 巨集 對話方塊中選取 開啟範例簡報檔案 巨集名稱,再按一下 編輯 指鈕。這巨集程式的內容應該如下所示:
Sub開啟範例簡報() ' ' 巨集錄製者: John Wu 錄製日期: 1999/10/12 ' Presentations.Open FileName:="C:\My Documents_ \範例簡報.ppt", ReadOnly:=msoFalse End Sub
注意 |
在這些程式碼中,如果有出現底線( _ )符號,即表示以下的程式碼是這一列的延續。 |
若要閱讀在這個巨集中的VBA程式碼(如以上所示的),您必須對巨集有個基本的認識。第一點,每個被錄製下來的巨集就是一個 程序 ,而它被定義成一個命令以完成指定的工作。而每一個程序都以這個英文單字 Sub 開始,例如這個案例,在 Sub 之後就是巨集名稱和一對括弧。而所有的程序都以 End Sub 字串為結束點。 第二點,VBA程式碼由主要的 例如,PowerPoint簡報就是一個物件,您在程式碼中得到簡報名稱,這就是物件中 在任何一行的程式碼,您可以設定物件的屬性或完成的方法,但不能同時執行這兩項。 這個範例的程式碼如之前所示(或重覆如下),Presentation 接續在Open 這個FileName描述的資訊使用中括弧及等於符號,用來說明您要開啟的簡報檔案路徑及名稱,並且由字串符號(")括起來。在VBA中,所有的文字字串都必須使用字串符號(")將它們前後括起來,以讓VBA知道這是一般的文字而不是拼錯單字的物件、屬性或方法。而ReadOnly描述的資訊是一個值(也稱之為內部的常數),它是內建在VBA而且等於False。這 這裡有兩種其他的方法是您必須知道如何閱讀(或寫下)VBA: 請不要隨意的按 ENTER 鍵,否則將打斷 VBA 的屬性、方法、陳述、功能及備註,而將其分為好幾個列。 使用錄製巨集的功能所產生的程式碼在某些陳述上是指固定的位置,換句話說,它只能完成您錄製時的指定動作。例如,就您之前所錄製的巨集而言,它只能開啟您指定位在My Documents資料夾內的檔案─範例簡報。若要將這位置的陳述轉換為適用性更寬廣的程式碼需要使用這兩項技術:一是加入變數,另一種是由使用這巨集的人自行輸入所需要的可變資訊。 想像電視機是接受單一頻道的硬體,所以您必須擁有3台電視機以觀看主要的三個網路頻道。(請暫時不要考慮有線電視。)程式碼將不會使用如電視機般無效率的只選用單一的頻道。 變數 最好的練習方法,當常去呼叫一個變數,也就是說在開始撰寫一個程式時即列出變數清單和代表每個變數可使用的資料型態項目。您可以使用鍵盤輸入這個呼叫的變數 例如,在下列的範例程式碼中,緊接在 請依照下列的步驟操作,您可以建立一個新的巨集並輸入上述的程式碼,然後試驗這變數是如何執行的(同時看看如何寫下程式碼): 如果您剛建立的巨集是在您目前PowerPoint簡報中的第一個巨集,這個MyName程序將會顯示在這 您可調整 程式碼 視窗以方便您只查看目前想要編輯的巨集名稱的程式碼內容,請在 程式碼 視窗的左下角上按一下 程序檢視 按鈕,即只顯示目前插入點所在的巨集名稱的程式碼內容,而不顯示其他在同一個模組(Module)內的巨集,當然您只要再按一下 全模組檢視 按鈕可再檢視這個模組內的所有巨集程式碼。 若要加入程式碼在這個程序內,請依照下列的步驟操作: 請注意當您在輸入時,Visual Basic編輯器會提出一連串的關鍵字清單(其排序根據英文字母的次序),而這個選項也會因為您所輸入的第二個或第三個的字母而提出相關的項目,例如,當您開始輸入 string 時,Visual Basic編輯器會列出第一個字母是s開頭的項目(如圖20-4),但當您輸入到 str 字串時在這清單中 string 即顯示出來,此時您不需要完全輸入這個變數的全部字串,只需按 ENTER 鍵就會將這個 string 變數放在插入點所在的位置上。 您是否注意到當輸入 現在,您可以利用下列這兩種方法執行這個巨集(程式)。 當您執行這個巨集後,您應該可以看到如圖20-7所顯示的一個訊息方塊。 若要想改變這個巨集以顯示另一個姓名,請在這個程式碼中,將第二列MyName = "Sharon"的Sharon改為其他的姓名。例如,輸入 根據下列所顯示的程式碼內容,將會在訊息方塊中顯示 若要結束Visual Basic編輯器,請在 雖然這些在您的巨集中,其變數的內容可以很輕易的被修改,如同上述所舉的一個程序(巨集)例子,但仍然是固定的陳述程式碼。換言之,只有這個程式設計者(就是您本人)可以在變數 若想讓使用者提供資訊到您的巨集中,最簡單的方法是:使用 請注意在這個程序中,變數 當然,這個輸入方塊 InputBox 函數是獲得使用者資訊最簡單的方法。而要產生這些對話方塊,而更加彈性及複雜的方法是在 Visual Basic 編輯器中使用 自訂表單 功能。您可以在 Visual Basic編輯器 視窗中利用輔助說明瞭解如何使用這項 自訂表單 功能。 雖然您可以在 巨集 對話方塊中按一下 執行 按鈕執行巨集(請參閱 <如何執行巨集> )。而如果執行巨集就如同在PowerPoint中,利用功能表列中的指令或工具列中的按鈕,這樣的操作不也是更方便嗎? 當您建立一個自訂的工具列或加入一個自訂的功能表在功能表列中,實際上您就是利用這相同的方式自訂Microsoft的工具列。在這工具列中可以包含按鈕、功能表或是組合這兩項。 若要建立一個自訂的工具列並加入巨集到這工具列中,請依照下列的步驟操作: 一個新的且是空的工具列即顯示在畫面上,但如果這個新工具列與 若要建立一個自訂的功能表並加入巨集到這功能表列中,請依照下列的步驟操作: 將巨集加入到您自訂的功能表(專屬區),請依照下列的步驟操作:Sub NameOfThisSubroutine()
Code
End Sub
object.property或object.method
Presentations.Open
FileName:="C:\My Documents_\範例簡報.ppt", ReadOnly:=msoFalsePresentations.Open FileName:= "C:\ My Documents_
\範例簡報.ppt"
, ReadOnly:= msoFalse
換行鍵 為結束。例如,在這個範例的巨集中 Presentations.Open FileName:="C:\My Documents\範例簡報.ppt", ReadOnly:=msoFalse 就是一列的單一程式碼,而最後以 換行鍵 為結束點。' 巨集錄製者: John Wu 錄製日期: 1999/10/12
注意 Sub MyName ()
Dim MyName As String
MyName = "Sharon"
MsgBox prompt:= MyName
End Sub
Sub MyName()
End Sub
注意 Dim MyName As String
MyName="Sharon"
MsgBox Prompt:=MyName
圖20-4.當您輸入程式碼時,Visual Basic編輯器將顯示其相對應的程式提示。 圖20-5.
當您輸入MsgBox這關鍵字串時,Visual Basic編輯器將顯示這個MsgBox函數所需要的完整引數串列。
巨集 對話方塊中執行這個巨集。圖20-6.
Visual Basic編輯器的一般工具列。 圖20-6.
執行MyName巨集所顯示出變數名稱MyName所指定的內容。 MyName = " John Wu "
MyName = "George Washington是美國第一任總統"
Sub YourName()
Dim YourName As String
YourName=InputBox(Prompt:="請輸入您的姓名")
MsgBox Prompt:= YourName
End Sub
圖20-8.無論使用者在輸入方塊中(左圖)輸入什麼資料,都將顯示在訊息方塊中(右圖)。 注意
檢視 功能表中按一下 工具列 指令,然後再按一下 自訂 指令。圖20-9.
在 自訂 對話方塊中,您可在左方的 類別 清單中選取 巨集 項目,然後在右方的 指令 窗格即顯示可供使用的巨集。 圖20-10.
這個自訂的工具列其中的巨集按鈕包含了文字與圖示。
檢視 功能表中按一下 工具列 指令,然後再按一下 自訂 指令。
自訂 對話方塊中,按一下 指令 標籤,並在 類別 選項中選取 巨集 項目。
Copyright1997-2001 SoftChina Corporation. All rights reserved.