E X C E L V B A

附錄

除錯功能的基本操作

除錯功能可暫停程式的運作,也可逐行執行程式,所以能夠了解程式的內部
運作。

除錯功能的應用 從初學開始就不可能寫出完全沒有問題的程式,所以必須在程式執行過程中暫停程式的運作,一邊 追查變數的流向,一邊分析程式的問題。 S T E P 01 顯示即時運算視窗 除錯時,可利用即時運算視窗這個方便的功能。 開啟即時運算視窗 1 點選「檢視」→「即時 運算視窗」 即時運算視窗開啟了 2 .

Print 方法,通常會用在程式執行 途中確認變數內容。 p. S T E P 02 利用巨集在即時運算視窗裡顯示值 要在即時運算視窗裡顯示值,可使用 Debug. b As Integer a = 1 b = 10 Debug.3 漏譯 Sub 除錯練習() Dim a As Integer.Print "a="&a. "b="&b 會顯示這樣的內容 3 .) 可利用 Debug. b End Sub 要輸入逗號 (.Print 標示。 Debug.Print a.Print 顯示 變數 a 與變數 b 的值 MEMO 利用字串的顯示方式 上例看不出哪一個是 a 值,所以可利用下列用來連結字串的 & 與 Debug.

S T E P 03 中斷點的應用 設定中斷點即可暫停程式執行。 即便說是中斷點也別聯想成是網球用語喔。 Sub 除錯練習2() Dim a As Integer For a = 1 To 3 1 p4 漏譯 Debug.Print a Next a End Sub 2 點選要中斷執行的程式 的左側灰色部分 3 將顯示暗紅色的線條。 這就是中斷點 Î 按下鍵盤的 F5 一樣能 4 執行程式 執行程式 5 執行到中斷點的程式碼就停止了 6 將滑鼠游標移至變數「a」將可顯示變數「a」的內容 7 再次執行程式 4 .

程式將再次停在中斷點的位置, 8 只要把滑鼠游標移至變數,就能知 道變數的內容 S T E P 04 逐行執行的應用 想逐行執行程式時,可使用逐行命令。 在 Step03 中斷點執行之後的狀態繼續執行 Î 按下鍵盤的 F8 鍵一樣 能逐行執行程式 1 點選「除錯」→「逐行」 2 程式往下執行一行 如果不設定中斷點,就能利用逐行命令從頭逐行執行程式。 5 .

屬性」就能確認物件變數的屬性值。讓我們實際試試 看吧。 試著使用即時運算視窗 Sub 除錯練習3() Dim 儲存格範圍 As Range 1 輸入這個巨集 Set 儲存格範圍 = Range("A1:B3") 儲存格範圍.Value = 1 End Sub 2 在此設定中斷點,讓程式將執行 到中斷點就停止。 3輸入以「?」開頭的「? 儲存格 範圍 . S T E P 05 在即時運算視窗裡確認變數內容 在程式執行過程中也能使用即時運算視窗。滑鼠游標無法確認物件變數的內 容,但是只要使用這個步驟介紹的方法,就能在即時運算視窗裡確認物件變數 的內容。 只要在即時運算視窗裡輸入「? 變數名稱」就能確認變數的內容 ( 下圖 )。 只要輸入「? 物件變數 .Address」 4 將顯示「?」之後的內容 6 .

在即時運算視窗裡執行命令句 在即時運算視窗裡執行命令句,再按下 Enter 鍵,就能執行該行命令句。讓我 們實際試試看,確認一下結果吧! 即時運算視窗的使用 Sub 除錯練習3() Dim 儲存格範圍 As Range 1 將巨集寫成這個內容 Set 儲存格範圍 = Range("A1:B3") 儲存格範圍.Value = 1 End Sub 2 將中斷點設定在這裡,然後執行程式 Î 輸入「?」以及命令句 5 在即時運算視窗裡輸入這行命令句,然後 之 後, 最 後 要 記 得 按 下 按下 Enter 鍵。雖然看起來沒什麼變化,但 「Enter」鍵。 是變數「儲存格範圍」卻改變了。 6 按下執行鈕,執行到最後 7 在即時運算視窗指定的「儲存格 範圍」輸入值了 7 .