[ 들어가며 ]
간혹 제 블로그를 보시면
매크로 실행시간을 나타내었던 적이 있습니다.
매크로 실행시간은
짧은 매크로를 만드는 데는 그렇게 중요하지는 않습니다.
요즘 컴퓨터가 매우 빠르게 좋아지고 있고,
코드가 최적화 되어 있지 않아도
매우 빠른 속도로 동작하기 때문입니다.
하지만 같은 동작을 하는 코드라도
작성 방법에 따라
실행속도가 차이가 날 수 있습니다.
오늘은 내가 만든 매크로가 실행하는데 얼마나 걸리는지
알아보는 방법을 작성해 보겠습니다.
매크로 실행시간을 알아보는 방법은 간단합니다.
[ 매크로 실행 시작 시간 - 매크로 실행 종료시간 ]
매크로 실행이 시작된 시간에서
매크로 실행이 종료된 시간을 빼면
걸린 시간이 나옵니다.
[ Timer 함수 사용하기 ]
아래 코드를 실행해 보겠습니다.
Sub macro()
MsgBox timer
End Sub
이 코드를 실행하면 아래 그림과 같이
자정부터 지금까지 흐른 시간이 아래 그림과 같이 표시가 됩니다.
즉 timer 함수는 현재 날짜의 자정 이후 경과된 시간을 반환합니다.
단위는 초입니다.
다음은 timer 함수를 사용하여
매크로 실행에 얼마만큼의 시간이 걸리는 지 확인하는 코드를 살펴보겠습니다.
Sub Macro1()
startTime = timer
For i = 1 To 10000
For j = 1 To 50
Cells(i, j) = i
Cells(i, j) = i
Cells(i, j) = i
Next
Next
endTime = timer
MsgBox "매크로 실행 시간: " & (endTime - startTime)
End Sub
매크로의 시작과 끝을 잘 살펴보시기 바랍니다.
startTime = timer
<실행코드>
endTime = timer
매크로의 시작과 끝에 timer 함수를 사용하여
시간을 측정하였습니다.
위 코드는 다음과 같은 결과를 나타냅니다.
제 컴퓨터에서는
이 코드를 실행하는데 12.88281초가 걸렸습니다.
실행 환경에 따라 걸리는 시간은
다소 차이가 날 수 있습니다.
뿐만 아니라 같은 환경에서 매크로를 실행하더라도
시간의 차이는 발생할 수 있습니다.
소수점 다섯째 자리는 좀 과도한 면이 있어서
소수점 둘째 자리 정도로 표현하고 싶다면
아래 코드와 같이
msgbox의 표시형식을 바꾸어 주시면 됩니다.
MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "00.00")
이렇게 코드를 바꾸고 실행하면
다음 그림과 같이 결과가 나타납니다.
참고로 이렇게 표현도 가능합니다.
MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "00:00:00.00")
이렇게 코드를 바꾸고 실행하면
다음 그림과 같이 결과가 나타납니다.
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA의 배열 대신 Collection 첫번째(선언 및 아이템 추가, 삭제, 개수 확인) (0) | 2024.02.01 |
---|---|
엑셀 VBA 단어 채우기, VBA 좀 더 편리하게 사용하기 (2) | 2024.01.31 |
VBA With-End With 구문에 대한 기초 설명, With-End With 사용 방법 (1) | 2024.01.30 |
엑셀 VBA Instr 함수, VBA 문자열 검색의 기본과 예시 (1) | 2024.01.26 |
엑셀 VBA 번역 사용자 정의 함수 만들기, 엑셀 VBA 번역기 직접 만들어 사용하기, 엑셀 영어 번역 (1) | 2024.01.25 |