2014年7月11日 星期五

開始第一個VBA程式

大部份的程式入門教學, 都會以一個視窗秀出 Hello World作為第一個程式的撰寫. 我們沿襲這個傳統但稍加修改來開始我們的第一個VBA程式.

在剛才打開的程式撰寫視窗中游標的位置輸入

sub My1stSub

後按下[enter], 會看到如下的畫面


系統自動把sub 變成 Sub, 隔了一行後, 又自動的加上了 End Sub; My1stSub的後面也自動加上了括號(). 這個

Sub 巨集名稱()
End Sub

是巨集頭尾的標準格式, 所以VBE自動幫忙完成了. 其實巨集是一個可以被呼叫的副程式, 所以用Sub做開頭來標示, 意指Subroutine. 後面的巨集名稱是可以指定的, 通常設定成有意義的字串, My1stSub (我的第一個副程式), 但開頭不能是數字. 結尾用End Sub來標示這個副程式的結束. 程式碼就寫在這兩行的中間.

接下來在游標處按下[tab], 游標會跳過4個字的寬度, 然後輸入

Msgbox ”Hi, 我的第一個巨集程式

整個程式看起來如下圖



按下[tab]鍵讓游標跳過4個字的寬度的目的是讓整個程式碼容易閱讀, 稱為縮排, 可以在編輯工具列中找到相同功能的工具. Msgbox 是讓EXCEL秀出一個訊息視窗的指令, 後面接著用雙引號刮起來的文字, 就是要秀出來的訊息.

        怎麼讓EXCEL執行這段程式呢? VBE環境中, 首先把游標用滑鼠移動到要執行的Sub區段中的任何位置, 如本例的My1stSub, 然後按功能表[執行]或工具列的[u]工具或鍵盤[F5]都可以啟動執行.




執行的結果如下圖示, EXCEL會出現一個視窗, 顯示剛才所設定的訊息文字, 等著使用者按[確定]來結束這個Msgbox指令. 注意, 使用者一定要回應, EXCEL才會繼續下一個動作.


Msgbox 作為我們的第一個程式, 只是一個顯示訊息的介面. 在稍後的資料庫程式中, 也會運用來作為跟使用者溝通的介面.

        EXCEL環境中也可以來執行巨集. 回到EXCEL環境, [開發人員]工能表或[檢視]功能表按下[巨集]工具, 會出現巨集選取視窗, 如下圖


只有一個巨集: Sheet1.My1stSub, 系統已經自動選取, 按下[執行], 會得到跟上面相同的結果. 奇怪的是巨集名稱為何在My1stSub前面多了一個Sheet1.? 因為我們剛才是在Sheet1的程式區段內寫下My1stSub巨集, 所以My1stSub是屬於Sheet1的子程式, 為了標示並區分來自Sheet1My1stSub, 所以在My1stSub前面加了一個Sheet1, 並用”.”來分隔 Sheet1My1stSub的從屬關係.


在開始下一個階段前, 建議你自己多練習幾次, 直到你記得了SubMsgbox.

沒有留言:

張貼留言