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

Office 指南

辦公室工作實用教學

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

Excel VBA 加速程式執行速度技巧教學

介紹各種加速 Excel VBA 程式執行效率的技巧,包含暫停更新畫面與狀態列、暫停事件處理、暫停公式自動計算。


Excel VBA 巨集程式對於處理少量的資料來說,是非常好用的自動化工具,但是如果資料量或計算量非常龐大時,頻繁存取 Excel 試算表的資料,會造成程式效能大幅降低,執行速度變得很慢。

以下我們介紹一些常用來加速 Excel VBA 巨集程式的方法,大部分的情況下使用這些技巧多少都會對程式的執行效能有所幫助。

暫停更新畫面

當 VBA 巨集程式在控制 Excel 進行各種動作時(例如切換工作表等),使用者可以在螢幕上直接看到所有的操作,這樣雖然可以很方便看到 VBA 巨集程式目前執行的進度,但是要一邊執行程式一邊更新畫面,其實是會大幅拖慢執行速度的,這時候如果可以暫時停止更新畫面,等到所有的動作執行完,最後再更新的話,可以讓程式加速非常多。

若要讓某段 VBA 巨集程式在執行時,暫停畫面更新,可以再該程式碼的前後分別加上暫停與恢復畫面更新的設定:

' 暫停畫面更新
Application.ScreenUpdating = False

' 主要程式碼放在這裡

' 恢復畫面更新
Application.ScreenUpdating = True

這樣一來再主要程式碼執行時,畫面就會暫時停止更新,而等到執行結束後,就會恢復正常,雖然看起來有點像當機的樣子,不過執行速度會快很多。

暫停更新狀態列

Excel 狀態列的更新也會多少拖慢執行速度,程式執行時可將其暫時關閉:

' 暫停狀態列更新
Application.DisplayStatusBar = False

' 主要程式碼放在這裡

' 恢復狀態列更新
Application.DisplayStatusBar = True

暫停事件處理

事件處理也是一種會拖慢執行速度的 Excel 功能,我們也可以用同樣的方式,暫時將其關閉:

' 暫停事件處理
Application.EnableEvents = False

' 主要程式碼放在這裡

' 恢復事件處理
Application.EnableEvents = True

暫停公式自動計算

Excel 在資料變動時會自動計算資料表中的公式,暫停這個功能也可以加入程式的執行,等待所有的計算完成後,再恢復自動計算功能:

' 暫停公式自動計算
Application.Calculation = xlCalculationManual

' 主要程式碼放在這裡

' 恢復公式自動計算
Application.Calculation = xlCalculationAutomatic

暫停四個容易拖慢的 Excel 功能

大部分的情況下,我們可以同時將以上四種會影響執行速度的 Excel 功能都暫停,讓程式以最有效率的方式執行:

' 暫停四個容易拖慢的 Excel 功能
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False

' 主要程式碼放在這裡

' 恢復四個容易拖慢的 Excel 功能
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True

在撰寫 VBA 巨集程式時,就把這段程式碼直接貼在子程序(Sub)中,這樣就可以輕鬆提升程式的執行速度了。

加速 VBA 程式執行速度
加速 VBA 程式執行速度

參考資料: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