Application.ScreenUpdating 사용법 총정리 (매크로를 더욱 빠르게!)
매크로를 더욱 빠르게 동작하도록 도와주는 ScreenUpdating 속성의 사용방법을 알아봅니다.
엑셀 VBA :: Application.ScreenUpdating
| 예제파일 |
예제파일 사용안내
예제파일은 매크로가 포함되어 있습니다. 예제파일 실행 후 '컨텐츠 포함' 버튼을 클릭하여 매크로를 활성화합니다.
매크로를 활성화하는 방법은 '예제파일 매크로 활성화 방법' 포스트를 참고해주세요.
요약
엑셀 VBA의 Application.ScreenUpdating 속성에 대해 알아봅니다.
설명
엑셀 VBA의 Application.ScreenUpdating은 매크로 속도개선을 위해 취할 수 있는 가장 쉬운 방법 중 하나입니다.
매크로의 주 명령문이 시작되기전, Application.ScreenUpdating 의 값을 'False'로 설정한 뒤 매크로를 실행하면 매크로가 실행되는 동안 엑셀의 화면동작이 중단됩니다.
- 여러 시트 또는 여러 셀을 참조하여 매크로가 동작하거나 또는
- 명령문이 실행되는 동안 차트/표/피벗테이블이 업데이트되야 하는 경우
매크로 속도개선에 큰 기대를 할 수 있습니다.
실무에서 사용되는 간단한 매크로를 구현할 경우 [대게 사용자 요청으로 매크로가 동작하는 동안 마우스 커서가 빙글빙글 도는 모습만 보면 지루하니, 동작하는 화면을 보여달라는 요청으로 인하여] 매크로의 동작 속도가 크게 느리지 않을 경우 보통 True로 값을 주는것도 사용자 편의를 생각할경우 하나의 방법이 될 수 있습니다.

VBA 코드
'// 명령문 시작 전 ScreenUpadating 중단
Application.ScreenUpdating = False
'###########################
'// 동작할 실제 명령문...
'###########################
'// 명령문 종료 후 ScreenUpdating 재개
Application.ScreenUpdating = True
세부내용
1. 시트의 A1셀부터 CV100셀까지 셀주소를 입력하는 매크로 실행
시트의 R1C1[=A1셀] 부터 R100C100[=CV100셀] 까지 각 셀의 셀주소를 입력하는 매크로를 실행합니다.
For i = 1 To 100
For j = 1 To 100
Sheet1.Cells(i, j) = Sheet1.Cells(i, j).Address
Next
Next
2. 아래 매크로의 ScreenUpdating 의 값을 False로 할때와 True로 할때의 동작속도를 비교합니다.
Sub UpdateFalse()
Dim StartTime As Double
Dim SecondsElapsed As Double
Dim i As Long: Dim j As Long
Application.ScreenUpdating = False
StartTime = Timer
Sheet1.UsedRange.Clear
For i = 1 To 100
For j = 1 To 100
Sheet1.Cells(i, j) = Sheet1.Cells(i, j).Address
Next
Next
SecondsElapsed = Round(Timer - StartTime, 3)
Application.ScreenUpdating = True
MsgBox "총 매크로 동작시간은 '" & SecondsElapsed & "' 초 입니다."
End Sub
Sub UpdateTrue()
Dim StartTime As Double
Dim SecondsElapsed As Double
Dim i As Long: Dim j As Long
StartTime = Timer
Sheet1.UsedRange.Clear
For i = 1 To 100
For j = 1 To 100
Sheet1.Cells(i, j) = Sheet1.Cells(i, j).Address
Next
Next
SecondsElapsed = Round(Timer - StartTime, 3)
MsgBox "총 매크로 동작시간은 '" & SecondsElapsed & "' 초 입니다."
End Sub
관련 문서
댓글 3
로그인 후 댓글을 작성할 수 있습니다.
하월시아
2021.11.09 00:42
감사합니다..
태호당당당당
2024.08.02 14:44
감사합니다!!
강민준🤗
2024.08.10 16:01
좋은 강의 감사합니다.
