[259회 라이브 공지] 이번 주(3/14) 토요일 라이브는 휴강입니다. 즐거운 주말 연휴 보내세요! 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

Timer 사용법 총정리 (매크로 속도 측정) :: 엑셀 위키

엑셀 매크로의 동작 속도를 측정하는 Timer의 사용법을 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2022. 11. 29. 23:47
URL 복사
메모 남기기 : (5)

엑셀 VBA :: Timer (매크로 속도 측정)

예제파일

요약

엑셀 VBA의 Timer 변수에 대해 알아봅니다.

설명

Timer 변수는 엑셀 VBA로 작성된 매크로의 속도 측정을 위해 사용하는 변수입니다. (주 사용용도가 매크로의 속도측정일뿐, 각자 필요에 따라 다른 용도로 사용하실수도 있습니다..)

VBA에 Default로 설정된 기본값으로  자정(12시)부터 지난 시간을 표현 가능한 최소한의 초단위로 반환합니다.  별도의 변수 설정을 안할시에는 Millisecond(1000분의 1초) 단위로 계산하며, Double 변수로 설정 시 그 이하 단위까지 측정 가능합니다.

Timer 매크로 속도 측정 - 사용예제
Timer 변수를 사용하여 매크로 동작 속도를 측정합니다.

VBA 코드

Sub VBA_Timer_사용법()
 
'//변수 설정
Dim dblStart As Double: Dim dblElapsed As Double
 
'// 매크로 실행 전 시작시간을 설정합니다.
dblStart = Timer 
 
'###########################
'동작할 명령문 입력
'###########################
 
'// 명령문이 끝난 시점의 Timer와 시작시간의 차이를 계산합니다
dblElapsed = Timer - dblStart
 
'// 매크로 속도를 msgbox로 반환합니다
MsgBox Format(dblElapsed, "0.0000초")
 
End Sub

세부내용

1. 시트의 A1셀부터 200번째 행/열에 위치한 값까지 셀주소를 출력하는 명령문을 실행
'// 명령문을 실행합니다.
WS.UsedRange.Clear
For i = 1 To 200
    For j = 1 To 200
        WS.Cells(i, j) = WS.Cells(i, j).Address
    Next
Next
2. Timer를 사용하여 매크로의 동작 속도를 측정합니다.
Sub 매크로_속도측정_예제()
 
'//변수 설정
Dim dblStart As Double: Dim dblElapsed As Double
Dim WS As Worksheet
 
Set WS = ActiveSheet
 
dblStart = Timer '// 매크로 실행 전 시작시간을 설정합니다.
 
'// 명령문을 실행합니다.
WS.UsedRange.Clear
For i = 1 To 200
    For j = 1 To 200
        WS.Cells(i, j) = WS.Cells(i, j).Address
    Next
Next
 
'// 명령문이 끝난 시점의 Timer와 시작시간의 차이를 계산합니다
dblElapsed = Timer - dblStart
 
'// 매크로 속도를 msgbox로 반환합니다
MsgBox Format(dblElapsed, "0.0000초")
 
End Sub
댓글 5
5 (3개 평가)
꽃가마
꽃가마 2021.01.31 07:54
안녕하세요. 덕분에 행복한 회원입니다.
timer 함수를 제 엑셀마크로에서 입력하면
newTime = timer
요렇게 함수가 작동이 안됩니다. (timer 소문자)
그래서 계산도 안됩니다.
무엇을 살펴봐야할까요?
(엑셀 2016 vba 7.1)

검색을 해보니 구글링으로 걸리는 원인들은...
변수명이 한글도 많읍니다.... 이거 꼭 영어로 고쳐야 하나요?
그 외에는 문제점이 전혀 안보이는데...
오빠두엑셀
오빠두엑셀 작성자 2021.02.04 16:05
안녕하세요.
newTime = timer
msgBox newTime
으로 timer가 제대로 동작하는지 확인해보시겠어요?^^
timer 동작과 변수 한글/영문 여부는 상관이 없어 보입니다.
raph00
raph00 2022.11.28 11:34
안녕하세요. 항상 많은 도움 받고 있습니다.
오타가 있는 듯 한데 확인 부탁 드립니다.

별도의 변수 설정을 안할시에는 Millisecond(100분의 1초) 단위로 계산하며,  ▶ (1000분의 1초)

MsgBox Format(dblElapsed, "0.0000초")
▶ dblElapsed/1000
오빠두엑셀
오빠두엑셀 작성자 2022.11.29 23:47
안녕하세요!^^
네 적어주신 내용이 맞습니다.
확인해주셔서 감사드리며 내용 바로 수정하였습니다.
감사합니다!
강민준🤗
강민준🤗 2024.08.10 15:55
좋은 강의 감사합니다.