본문 바로가기
#2 엑셀 오류 가이드

엑셀에서 VBA 사용 시 Application.ScreenUpdating이 작동하지 않는 문제 해결 방법

by 이세계의엑셀 2025. 3. 26.
반응형

엑셀에서 매크로(VBA)를 사용할 때 화면 깜빡임을 방지하고 매크로 실행 속도를 높이기 위해 주로 Application.ScreenUpdating 속성을 사용합니다. 그러나 때때로 ScreenUpdating 속성을 False로 설정했음에도 불구하고 화면이 계속 깜빡이며 업데이트가 되는 경우가 있습니다. 본 문서에서는 이러한 현상이 발생하는 원인을 자세히 분석하고, 문제를 효과적으로 해결할 수 있는 구체적인 방법을 안내합니다.

반응형


 

1. ScreenUpdating이 비활성화되지 않는 주요 원인

엑셀 VBA에서 ScreenUpdating이 제대로 작동하지 않는 주요 원인은 다음과 같습니다.

구분 원인 설명 예시
속성 재활성화 코드 중간에 다시 ScreenUpdating 속성을 True로 변경한 경우 매크로 코드 중간에 속성을 다시 True로 설정한 경우
VBA 코드 오류 발생 매크로 실행 도중 오류가 발생하여 ScreenUpdating 속성이 초기화된 경우 매크로 실행 중 오류가 발생하여 자동으로 다시 True 설정
다른 엑셀 추가 기능과 충돌 특정 추가 기능이나 VBA 코드가 ScreenUpdating 속성 설정과 충돌할 경우 다른 추가 기능이 동시에 활성화된 상태에서 매크로 실행
화면 갱신 강제 명령어 사용 코드 내에서 화면 갱신 명령(Application.DoEvents 등)을 자주 호출한 경우 코드 중간에 DoEvents 등을 빈번히 사용한 경우

2. ScreenUpdating 속성 미작동 문제 해결 방법

다음 방법을 통해 엑셀에서 ScreenUpdating이 제대로 작동하지 않는 문제를 해결할 수 있습니다.

방법 1: ScreenUpdating 속성 사용 시 주의사항

ScreenUpdating 속성 사용 시 코드 구조를 점검하여 문제를 해결합니다.

단계 설명
1 코드 처음과 마지막 부분에 명확하게 속성을 설정합니다.
2 매크로 시작 시 Application.ScreenUpdating = False로 설정합니다.
3 종료 직전에 반드시 Application.ScreenUpdating = True로 복원합니다.

방법 2: 오류 처리 루틴 추가

오류 발생 시 자동으로 속성이 초기화되지 않도록 오류 처리 루틴을 추가합니다.

단계 설명
1 VBA 코드 내에 On Error 문을 사용하여 오류 처리를 추가합니다.
2 오류 발생 시 ScreenUpdating을 True로 강제 복구하지 않도록 설정합니다.
3 예시 코드:
Sub ExampleMacro()
    On Error GoTo ErrorHandler
    Application.ScreenUpdating = False

    '매크로 코드 작성

ExitPoint:
    Application.ScreenUpdating = True
    Exit Sub

ErrorHandler:
    MsgBox "오류 발생: " & Err.Description
    Resume ExitPoint
End Sub

 

방법 3: 추가 기능 충돌 점검

엑셀 추가 기능이 ScreenUpdating 설정과 충돌하는지 확인하고 필요에 따라 비활성화합니다.

단계 설명
1 파일 → 옵션 → 추가 기능으로 이동하여 활성 추가 기능을 확인합니다.
2 문제를 일으킬 가능성이 있는 추가 기능을 비활성화하고 재실행합니다.

3. 팁과 예방 방법

ScreenUpdating 속성의 문제를 예방하고 매크로 실행 효율성을 높이기 위한 유용한 팁은 다음과 같습니다.

팁 및 예방 방법 상세 설명 적용 예시
코드 구조 최적화 ScreenUpdating 설정을 명확히 하여 코드 구조를 단순화합니다. ScreenUpdating 설정을 코드 시작과 끝에만 넣기
오류 처리 철저화 매크로 내 오류 처리를 철저히 하여 속성이 잘못 초기화되지 않도록 합니다. 모든 VBA 매크로에 오류 처리 루틴 포함하기
추가 기능 관리 매크로 실행 시 충돌 가능성을 낮추기 위해 추가 기능 사용을 최소화합니다. 자주 쓰지 않는 추가 기능을 비활성화하기

 

4. FAQ

Q1. ScreenUpdating을 항상 False로 유지하면 어떤 문제가 있나요?
매크로 실행 중 사용자에게 진행 상황이 보이지 않아 혼란을 줄 수 있으며, 매크로가 끝난 후 정상적인 엑셀 사용이 어려울 수 있습니다.

Q2. ScreenUpdating 외에 화면 깜빡임을 방지할 다른 방법은 없나요?
없습니다. ScreenUpdating이 화면 갱신을 방지하는 가장 효과적인 방법입니다. 다만, 코드 실행 구조 최적화로 속도를 높일 수 있습니다.

Q3. ScreenUpdating이 작동하지 않을 때 매크로 실행 속도에 문제가 있나요?
네, 화면 갱신이 계속되면 실행 속도가 느려질 수 있습니다. 문제를 해결하여 속도를 최적화하는 것이 좋습니다.

Q4. ScreenUpdating 문제를 예방하기 위한 가장 좋은 방법은 무엇인가요?
코드의 시작과 끝에서 명확히 속성을 설정하고, 오류 처리 루틴을 철저히 관리하는 것입니다.

반응형