• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Excel VBA 除錯技巧:Debug.Print 與即時運算視窗使用教學

使用 VBA 開發環境的即時運算視窗,測試各種臨時的運算,以及輸出除錯訊息,協助開發者測試並找出程式的問題。

問題

通常我們在撰寫較複雜的程式時,會一次寫一小段,然後逐一測試每一段的執行結果是否正確,如果已經寫好的一小段程式碼執行結果正確,再繼續往下寫,這樣才不會等到全部寫完,執行結果錯誤時,分不清楚是哪裡有問題。

若要查看一些計算的結果,大家直覺上應該會使用 MsgBox 這類的方式來顯示計算結果,但是如果我想要輸出的資料有很多筆的話(例如查看 For 迴圈中的資料時),每查看一筆資料,就要點一次 MsgBox 訊息視窗的「確定」按鈕,相當沒效率,該如何解決?

Dim i, s As Integer
s = 0
For i = 1 To 10
  s = s + i

  ' 查看運算結果(必須點 10 次確定按鈕)
  MsgBox "s = " & s
Next i

解法

如果想看的資料很多的時候,可以使用 Debug.Print 這個函數,配合 VBA 開發環境中的「即時運算」視窗,這樣就可以讓程式開發者快速的把大量的訊息或資料輸出來,一目了然,是一個非常好用的功能。

Debug.Print 與即時運算視窗

Step 1
在 VBA 的開發環境中,點選「檢視」中的「即時運算視窗」,或是直接按下 Ctrl + G 快速鍵。

開啟即時運算視窗

Step 2
開啟「即時運算」視窗後,預設會顯示在程式碼的下方。

即時運算視窗

Step 3
更改輸出訊息的方式,將原本的使用 MsgBox 輸出訊息的地方,改用 Debug.Print:

' 輸出至即時運算視窗
Debug.Print "s = " & s

Debug.Print 的功能就是輸出除錯用的訊息,使用這種方式輸出的資料都會直接顯示在「即時運算」視窗之中。

輸出除錯訊息

Step 4
執行更改好的 VBA 巨集程式,然後在「即時運算」視窗當中就可以看到 Debug.Print 所輸出的訊息了。

執行結果

在使用 Debug.Print 輸出訊息時,每呼叫一次 Debug.Print,就會自動在「即時運算」視窗中輸出一行訊息,開發者就可以一次清楚看到所有的除錯訊息,方便找出有問題的地方。

討論

「即時運算」視窗除了讓我們查看 Debug.Print 的輸出訊息之外,他也可以做為程式開發者的臨時計算機使用。

若要在「即時運算」視窗中進行臨時性的各種運算,可以先輸入一個問號 ?,然後接著輸入運算式,例如若要計算 100/3,則可輸入:

?100/3

接著再按下「Enter」鍵,即可得到運算結果。

除了普通的運算之外,各種的 VBA 程式碼都可以用這樣的方式來執行,例如若要取得 Excel 活頁簿的工作表數量,可以輸入:

?Worksheets.count

在「即時運算」視窗中輸入程式碼時,也會有自動補齊的功能可用,所以不必擔心記不住某些屬性或函數名稱。

自動補齊功能

參考資料:Excel Campus、微軟 MSDN 官方網站、StackOverflow

分類:Excel 標籤:VBA

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide