Fredric은 자신이 매크로에서 겪고있는 문제에 대해 썼습니다. F8 (매크로 단계별 실행)을 사용하여 VB 편집기에서 매크로를 실행하면 몇 분만에 완료됩니다. 그가 매크로를 완전히 실행하면 실행하는 데 영원히 걸리는 것처럼 보이며 종종 실행하는 데 20 분 이상이 걸립니다. Fredric의 통합 문서는 크지 만 (46MB) 두 실행 방법 간의 시간 차이는 귀찮습니다.

이와 같은 문제는 당혹 스러울 수 있으며,이를 파악하기 위해 종종 무거운 분석이 필요합니다. 시작하기 좋은 곳은 매크로에 “타이머 코드”를 추가하는 것입니다. 시간 값을 저장하는 작은 루틴과 저장된 값을 현재 시간과 비교하고 차이를 표시하는 다른 루틴을 추가하십시오. 분석하려는 코드 섹션의 시작 부분에서 첫 번째 루틴을 호출합니다 (시작 시간 절약)

그런 다음 코드 섹션의 끝에서 두 번째 루틴을 호출합니다.

이러한 방식으로 실행하는 데 가장 오래 걸리는 코드 부분을 확인할 수 있습니다. 이것들은 당신이 집중하는 코드 섹션이므로, 너무 오래 걸리는 작업을 파악할 수 있습니다.

또 다른 방법은 매크로 시작 부분에 다음 두 줄을 추가하는 것입니다.

Application.ScreenUpdating = False Application.EnableEvents = False

이렇게하면 화면 업데이트가 해제되어 실행중인 매크로가 느려지고 이벤트가 비활성화 될 수 있습니다. 이 마지막 줄은 워크 시트의 매크로에 의해 변경된 내용이 Excel의 재 계산 루틴을 트리거하지 않도록 포함됩니다. 매크로가 워크 시트의 데이터를 많이 변경하고 각 변경 후 전체 재 계산이 트리거되는 경우 이러한 큰 통합 문서를 사용하면 재 계산을 수행하는 데 많은 시간을 소비 할 수 있습니다. 매크로 끝에서 추가 한 두 줄의 효과를 되돌립니다.

Application.EnableEvents = True Application.ScreenUpdating = True

매크로가 실행되는 동안 자동 계산을 해제 할 수도 있습니다. 이렇게하면 매크로가 항목을 이동하거나 데이터 작업을하는 동안 Excel에서 중간 결과를 계산하지 않도록합니다. 자동 계산을 끄려면 매크로 시작 부분에 다음 줄을 사용하십시오.

Application.Calculation = xlCalculationManual

매크로가 워크 시트의 계산 된 정보에 의존하지 않는 경우에만 매크로에서 자동 계산을 해제하는 것이 좋습니다. 이 기능을 끄면 나중에 매크로 끝 부분에 다음 줄을 배치하여 자동 계산을 다시 켤 수 있습니다.

Application.Calculation = xlCalculationAutomatic

한 독자는 매크로가 Excel 워크 시트에서 실행되는 동안 다른 응용 프로그램에 초점을 맞추도록 제안했습니다. 예를 들어 메모장을 열고 해당 창을 활성화합니다. Excel이 더 이상 활성화되지 않으면 매크로 속도가 상당히 빨라집니다. 시도 할 수있는 또 다른 옵션은 마우스 포인터를 활성 Excel 워크 시트에 두는 대신 작업 표시 줄 영역으로 이동하는 것입니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (818)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excel-Macro_Runs_Slowly_but_Steps_Quickly [매크로가 느리게 실행되지만 빠르게 단계].