Excel 2013에서 VBA 코드를 실행할 때 Excel의 일부가 흰색 또는 회색으로 바뀝니다.

증상

Microsoft Excel 2013 Microsoft VBA(Visual Basic for Applications) 코드를 실행하면 Office 테마에 따라 Excel의 일부가 흰색 또는 회색으로 표시할 수 있습니다. 코드가 완료될 때까지 비어 있습니다. 이 문제는 VBA 코드가 매크로가 완료되기 전에 사용자가 결과를 볼 수 있을 만큼 충분히 오래 실행되는 매크로에서 다음 작업 중 하나 이상을 수행하는 경우에 발생할 수 있습니다.

  • 셀을 반복적으로 선택
  • 시트 삽입
  • 작업창 업데이트 또는 열기
  • 통합 문서 추가

원인

이 문제는 새 그래픽 엔진을 최적화하기 위해 Microsoft Office 2013에서 변경된 내용으로 인해 발생합니다.

해결 방법

  1. ScreenUpdating을 사용하여 Excel의 화면 업데이트를 사용하지 않도록 설정하면 변경 내용이 비활성화되어도 표시되지 않습니다. 이렇게 하면 매크로 성능도 향상될 수 있습니다.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. 화면 변경 내용을 확인해야 하는 경우 화면이 흰색으로 표시되도록 코드의 줄 뒤에 DoEvents 명령을 삽입합니다. DoEvents를 아끼는 것은 매크로 성능을 유지하는 데 도움이 됩니다.

    Workbooks.Add
    DoEvents
    

상태

이는 Excel 2013의 알려진 제한 사항입니다.

참고

모든 버전의 Excel에서는 Windows가 애플리케이션을 흰색으로 변경하고 응답하지 않는 것으로 표시할 때 장기 실행 매크로에서도 비슷한 효과가 발생할 수 있습니다. 이 문제는 매크로가 실행되는 동안 Excel이 Windows에 응답하지 않기 때문에 발생합니다. 또한 DoEvents는 Excel이 Windows에 응답하고 애플리케이션 화면이 복구되도록 허용하여 이 시나리오를 지원합니다.