EXCEL VBA

엑셀 VBA 매크로 실행시간 계산하기, 매크로 실행에 걸리는 시간은?, Timer 함수

카루루1007 2024. 1. 30. 22:14
728x90
반응형
SMALL

[ 들어가며 ]

 

간혹 제 블로그를 보시면

매크로 실행시간을 나타내었던 적이 있습니다.

 

매크로 실행시간은 

짧은 매크로를 만드는 데는 그렇게 중요하지는 않습니다.

요즘 컴퓨터가 매우 빠르게 좋아지고 있고,

코드가 최적화 되어 있지 않아도 

매우 빠른 속도로 동작하기 때문입니다.

 

하지만 같은 동작을 하는 코드라도

작성 방법에 따라

실행속도가 차이가 날 수 있습니다.

 

오늘은 내가 만든 매크로가 실행하는데 얼마나 걸리는지

알아보는 방법을 작성해 보겠습니다.

 

매크로 실행시간을 알아보는 방법은 간단합니다.

[ 매크로 실행 시작 시간 - 매크로 실행 종료시간 ]

728x90

매크로 실행이 시작된 시간에서

매크로 실행이 종료된 시간을 빼면

걸린 시간이 나옵니다.

 

[ 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초가 걸렸습니다.

 

실행 환경에 따라 걸리는 시간은 

다소 차이가 날 수 있습니다.

뿐만 아니라 같은 환경에서 매크로를 실행하더라도

시간의 차이는 발생할 수 있습니다.

SMALL

소수점 다섯째 자리는 좀 과도한 면이 있어서

소수점 둘째 자리 정도로 표현하고 싶다면

아래 코드와 같이

msgbox의 표시형식을 바꾸어 주시면 됩니다.

MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "00.00")

 

이렇게 코드를 바꾸고 실행하면

다음 그림과 같이 결과가 나타납니다.

 

참고로 이렇게 표현도 가능합니다.

MsgBox "매크로 실행 시간: " & Format(endTime - startTime, "00:00:00.00")

이렇게 코드를 바꾸고 실행하면

다음 그림과 같이 결과가 나타납니다.

 

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형
LIST