💡 핵심 요약: 엑셀로 0.01초 단위 정밀 스톱워치와 90일 카운트다운 타이머를 만드는 완벽 가이드입니다. 함수와 VBA의 차이점을 이해하고, 즉시 사용 가능한 소스 코드를 복사해서 적용해 보세요.
엑셀로 업무를 보거나 기록을 관리하다 보면, 단순히 숫자를 입력하는 것을 넘어 시간을 측정하고 싶다는 욕구가 생길 때가 있습니다. 특히 90일 장기 프로젝트의 D-Day 관리나, 0.01초를 다투는 정밀한 기록 측정이 필요할 때가 그렇습니다.
결론부터 말씀드리면 "네, 가능합니다." 엑셀은 단순한 스프레드시트를 넘어 강력한 프로그래밍 도구이기 때문입니다. 오늘은 그 원리와 바로 복사해서 쓸 수 있는 실전 코드까지 한 번에 정리해 드립니다.

1. 왜 '함수'가 아니라 'VBA'인가?
많은 분들이 =NOW() 같은 기본 함수로 시계를 만들려고 시도합니다. 하지만 함수는 셀에 데이터가 입력되거나 재계산될 때만 시간이 바뀌기 때문에, 실시간으로 흐르는 초시계처럼 보이지 않습니다.
따라서 원하시는 기능을 구현하려면 VBA(매크로)를 사용해야 합니다. 두 방식의 결정적 차이를 표로 정리했습니다.
| 구분 | 기본 함수 | VBA (매크로) |
|---|---|---|
| 실시간 동작 | 불가능 (정지 화면) | 가능 (흐르는 시간) |
| 정밀도 | 초 단위 | 0.01초 단위 가능 |
| 구현 난이도 | 쉬움 | 코드 필요 (복붙 가능) |
2. 실전: 1분 만에 만드는 나만의 타이머
이제 이론은 충분하니 실제로 만들어보겠습니다. 코딩을 몰라도 괜찮습니다. 아래 순서대로 복사하고 붙여넣기만 하세요.
준비 단계: VBA 창 열기
- 엑셀 실행 후 [Alt] + [F11] 키를 동시에 누릅니다. (VBA 편집기 실행)
- 상단 메뉴 [삽입] - [모듈]을 클릭합니다.
- 나타나는 하얀색 빈 창에 아래 필요한 코드를 붙여넣으세요.

A. 0.01초 단위 정밀 스톱워치 코드
이 코드는 'B2' 셀에 시간을 표시합니다. 버튼을 눌러 시작, 정지, 리셋이 가능합니다.
|
[소스 코드 복사] Public RunTimer As Boolean Public StartTime As Double Sub StartStopWatch() RunTimer = True StartTime = Timer Do While RunTimer DoEvents Range("B2").Value = Format((Timer - StartTime) / 86400, "hh:mm:ss.00") Loop End Sub Sub StopStopWatch() RunTimer = False End Sub Sub ResetStopWatch() RunTimer = False Range("B2").Value = "00:00:00.00" End Sub |
B. 90일 카운트다운 (D-Day) 타이머 코드
목표 날짜까지 남은 시간을 실시간으로 보여줍니다. 'C2' 셀에 목표 날짜(예: 2025-12-31)를 입력하면 'C3' 셀에 남은 시간이 뜹니다.
|
[소스 코드 복사] Sub StartCountdown() Dim TargetDate As Date TargetDate = Range("C2").Value If TargetDate < Now Then MsgBox "목표 날짜는 미래여야 합니다!" Exit Sub End If Range("C3").Value = TargetDate - Now Range("C3").NumberFormat = "d일 h시간 mm분 ss초" Application.OnTime Now + TimeValue("00:00:01"), "StartCountdown" End Sub |
사용 방법 마무리
코드를 붙여넣은 뒤, 엑셀 시트에 도형(버튼 모양)을 만들고 마우스 우클릭 > [매크로 지정]을 눌러 방금 만든 매크로(Start, Stop 등)를 연결해주시면 됩니다.
엑셀은 사용자가 활용하기에 따라 강력한 정밀 측정 도구가 됩니다. 오늘 공유해 드린 코드로 여러분의 기록 단축과 프로젝트 관리에 큰 도움이 되길 바랍니다.