VBA 속도향상 스위치
MS 에서 VBA 의 속도 향상을 위해서 5가지 설정을 조절할 수 있다고 이야기 합니다.
아래와 같이 4개의 Application 속성과, 1개의 Sheet 속성 값을 조절하면 됩니다.
엑셀을 실행하면, 초기값은 아래와 같습니다.
Application.ScreenUpdating '/Boolean/ "True"
Application.Calculation '/XlCalculation/ "-4135, xlCalculationAutomatic"
Application.EnableEvents '/Boolean/ "True"
Application.DisplayStatusBar '/Boolean/ "True"
ActiveWorksheet.DisplayPageBreaks '/Boolean/ "False"
- ScreenUpdating : 화면의 업데이트를 관장, 즉 True 상태에서는 매크로 한줄한줄 실행되는 과정을 눈으로 직접 확인가능하나, False 상태에서는 결과 상태만 볼 수 있음
- Calculation : False 가 되면, 자동연산이 되지 않음
- EnableEvents : 확인중
- DisplayStatusBar : 엑셀 맨 아랫 줄
- DisplayPageBreaks(Sheet레벨) : 확인중
활용 예
Sub FastVBA()
StuffOff
'MyProgram
StuffOn
End Sub
Sub StuffOff()
With Application
.ScreenUpdating = False
.DisplayStatusBar = False
.Calculation = xlCalculationManual
.EnableEvents = False
Worksheets("Sheet1").DisplayPageBreaks = False
End With
End Sub
Sub StuffOn()
With Application
.ScreenUpdating = True
.DisplayStatusBar = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
Worksheets("Sheet1").DisplayPageBreaks = True
End With
End Sub
참고문헌
Excel performance - Tips for optimizing performance obstructions
Learn about ways to optimize Excel functionality such as links, lookups, formulas, functions, and VBA code to avoid common obstructions and improve performance.
docs.microsoft.com