본문 바로가기
ExcelVBA

VBA 속도 향상

by 친구와 함께 산책 2021. 5. 6.

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

 

 

참고문헌

docs.microsoft.com/en-us/office/vba/excel/concepts/excel-performance/excel-tips-for-optimizing-performance-obstructions

 

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