마이크로소프트 엑셀(Microsoft Excel)은 매우 강력한 소프트웨어입니다. 다양한 도구와 기능을 활용하면 데이터에 수많은 작업을 손쉽게 수행할 수 있으며, 기본 제공되는 엑셀 함수를 조합해 복잡한 수식도 만들 수 있습니다. 그래서 교육기관과 기업들이 소중한 데이터를 관리하는 데 엑셀 파일을 널리 사용하고 있습니다.
그런데 경우에 따라 일정한 시간 간격마다 특정 값을 새로고침해 항상 최신 결과를 유지해야 할 때가 있습니다. 분 단위 간격이라면 선택할 수 있는 방법이 몇 가지 있지만, 초 단위 간격으로 자동 업데이트하려면 반드시 VBA를 사용해야 합니다. 이 글에서는 엑셀에서 5초 간격으로 자동 업데이트를 구현할 수 있는 4가지 예제를 단계별로 소개합니다.
엑셀에서 5초 간격 자동 업데이트를 위한 사전 준비
초 단위 간격으로 데이터를 자동 새로고침하려면 엑셀 VBA의 도움이 필요합니다. 예시로 사용할 데이터는 아래와 같습니다. RAND 함수로 생성한 값 1과 값 2, C6 셀에는 NOW 함수로 현재 시간을, C7 셀에는 TODAY 함수로 날짜를 표시하도록 구성했습니다.

핵심 원리는 간단합니다. VBA의 Application.OnTime 메서드와 DateAdd 함수를 조합하면 지정한 초가 지날 때마다 매크로가 스스로를 다시 호출하며, Calculate 명령으로 대상 셀·범위·시트를 반복적으로 재계산할 수 있습니다.
1. VBA로 특정 셀을 5초마다 자동 업데이트하기
첫 번째 예제는 하나의 셀을 5초마다 자동으로 갱신하는 방법입니다. 아래 단계를 따라 해 보세요.
진행 순서:
- 개발 도구 탭으로 이동합니다.
- Visual Basic을 선택합니다.

- VBA 창이 열리면 삽입 탭을 클릭합니다.
- 드롭다운 목록에서 모듈(Module)을 선택합니다.

- 모듈 창이 나타나면 아래 코드를 복사해 붙여넣습니다.
Sub UpdateCell()
Worksheets(1).Calculate
Range("C4").Calculate
Application.OnTime DateAdd("s", 5, Now), "UpdateCell"
End Sub

- 파일을 저장합니다.
- F5 키를 눌러 코드를 실행합니다.
- 이제 C4 셀이 5초마다 자동으로 새로고침됩니다.

2. VBA 코드로 셀 범위를 5초 간격으로 새로고침하기
단일 셀이 아니라 여러 셀로 이루어진 범위를 갱신하고 싶다면 아래 과정을 따르세요.
진행 순서:
- 개발 도구 ➤ Visual Basic으로 이동합니다.
- 삽입 ➤ 모듈을 클릭해 모듈 창을 엽니다.
- 아래 코드를 복사해 붙여넣습니다.
Sub UpdateCellRange()
Worksheets(2).Range("C4:C7").Calculate
Application.OnTime DateAdd("s", 5, Now), "UpdateCellRange"
End Sub

- 코드를 저장한 후 F5 키를 눌러 실행합니다.
- 이렇게 하면 C4:C7 범위가 5초마다 업데이트됩니다.

3. VBA로 워크시트 전체를 자동 업데이트하기
특정 셀이나 범위를 넘어 워크시트 전체를 한 번에 갱신할 수도 있습니다. 여기서는 세 번째 워크시트를 대상으로 진행합니다.
진행 순서:
- 예제 1 또는 2와 동일한 방법으로 모듈 창을 엽니다.
- 아래 코드를 복사해 입력합니다.
Sub UpdateSheet()
Worksheets(3).Calculate
Application.OnTime DateAdd("s", 5, Now), "UpdateSheet"
End Sub

- 파일을 저장한 뒤 F5 키를 누릅니다.
- 그러면 세 번째 워크시트가 5초마다 새로고침됩니다.

4. 통합 문서 전체를 5초 간격으로 자동 새로고침하기
마지막으로 통합 문서 전체를 갱신하는 방법입니다. 워크북에 포함된 모든 시트를 순차적으로 계산하도록 코드를 작성합니다.
진행 순서:
- 예제 1의 단계를 반복해 모듈 창을 엽니다.
- 아래 코드를 모듈 상자에 넣습니다.
Sub UpdateWorkbook()
Worksheets(1).Calculate
Worksheets(2).Calculate
Worksheets(3).Calculate
Worksheets(4).Calculate
Application.OnTime DateAdd("s", 5, Now), "UpdateWorkbook"
End Sub

- 이 코드는 통합 문서에 있는 4개의 워크시트 전부를 5초마다 새로고침합니다.
- 시트 개수에 맞게 Worksheets(n) 줄을 추가하거나 삭제하면 됩니다.
마무리
지금까지 소개한 예제를 따라 하면 엑셀에서 5초 간격 자동 업데이트를 손쉽게 구현할 수 있습니다. Application.OnTime 메서드와 DateAdd 함수를 조합해 매크로가 스스로를 반복 호출하도록 만드는 것이 핵심 원리입니다. 실시간 데이터 모니터링이나 대시보드를 운영할 때 유용하게 활용해 보세요. 더 좋은 방법을 알고 계시거나 궁금한 점이 있다면 댓글로 알려주세요.
함께 읽으면 좋은 글
- 엑셀 차트 새로고침 방법 (2가지 효과적인 방법)
- 엑셀 백그라운드 새로 고침 비활성화하기 (2가지 방법)
- Excel VBA: 화면 업데이트 끄기
- [해결됨] 저장하기 전까지 엑셀 수식이 업데이트되지 않을 때 (6가지 해결책)
- 엑셀 피벗 테이블 새로 고침 방법 (4가지 효과적인 방법)