반응형
VBA 코드 성능 향상을 위한 주요 설정
- Screen Updating: 화면 업데이트를 끄면 코드 실행 속도가 빨라집니다.
- Displaying Page Breaks: 페이지 구분선 표시를 끄면 코드 실행이 더 빨라집니다.
- Calculation Modes: 자동 계산을 끄면 코드 실행이 빨라집니다.
- Enable Events: 이벤트 트리거를 끄면 코드 실행이 더 안정적이고 빨라집니다.
예시 코드
Public CalcState As Long
Public EventState As Boolean
Public PageBreakState As Boolean
' 성능 최적화를 위한 초기 설정
Sub OptimizeCode_Begin()
Application.ScreenUpdating = False
EventState = Application.EnableEvents
Application.EnableEvents = False
CalcState = Application.Calculation
Application.Calculation = xlCalculationManual
PageBreakState = ActiveSheet.DisplayPageBreaks
ActiveSheet.DisplayPageBreaks = False
End Sub
' 성능 최적화를 끝내고 원래 설정으로 복구
Sub OptimizeCode_End()
ActiveSheet.DisplayPageBreaks = PageBreakState
Application.Calculation = CalcState
Application.EnableEvents = EventState
Application.ScreenUpdating = True
End Sub
Sub MyAwesomeMacro()
Dim x As Long
Dim y As Long
Dim cell As Range
'Optimize Code
Call OptimizeCode_Begin
'Insert your macro code here...
x = Range("A1")
y = Range("A3")
For Each cell In Range("C2:C2000)")
cell.Value = (x - cell.Row) / y
Next cell
'Optimize Code
Call OptimizeCode_End
End Sub
코드 사용 방법
- 매크로 시작 부분에
OptimizeCode_Begin
을 호출하고, 매크로 종료 부분에OptimizeCode_End
를 호출합니다.
왜 이 코드가 성능을 향상시키는가?
- 이 설정들은 컴퓨터의 메모리와 처리 능력을 절약하기 때문에 코드가 더 빠르게 실행됩니다.
이러한 설정을 통해 VBA 매크로의 성능을 효과적으로 향상시킬 수 있습니다. 특히, 복잡하고 시간이 오래 걸리는 작업을 자동화할 때 유용합니다.
반응형
댓글