엑셀 VBA :: Timer (매크로 속도 측정)
| 예제파일 |
요약
엑셀 VBA의 Timer 변수에 대해 알아봅니다.
설명
Timer 변수는 엑셀 VBA로 작성된 매크로의 속도 측정을 위해 사용하는 변수입니다. (주 사용용도가 매크로의 속도측정일뿐, 각자 필요에 따라 다른 용도로 사용하실수도 있습니다..)
VBA에 Default로 설정된 기본값으로 자정(12시)부터 지난 시간을 표현 가능한 최소한의 초단위로 반환합니다. 별도의 변수 설정을 안할시에는 Millisecond(1000분의 1초) 단위로 계산하며, Double 변수로 설정 시 그 이하 단위까지 측정 가능합니다.

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


timer 함수를 제 엑셀마크로에서 입력하면
newTime = timer
요렇게 함수가 작동이 안됩니다. (timer 소문자)
그래서 계산도 안됩니다.
무엇을 살펴봐야할까요?
(엑셀 2016 vba 7.1)
검색을 해보니 구글링으로 걸리는 원인들은...
변수명이 한글도 많읍니다.... 이거 꼭 영어로 고쳐야 하나요?
그 외에는 문제점이 전혀 안보이는데...
으로 timer가 제대로 동작하는지 확인해보시겠어요?^^
timer 동작과 변수 한글/영문 여부는 상관이 없어 보입니다.
오타가 있는 듯 한데 확인 부탁 드립니다.
별도의 변수 설정을 안할시에는 Millisecond(100분의 1초) 단위로 계산하며, ▶ (1000분의 1초)
MsgBox Format(dblElapsed, "0.0000초")
▶ dblElapsed/1000
네 적어주신 내용이 맞습니다.
확인해주셔서 감사드리며 내용 바로 수정하였습니다.
감사합니다!