VBA의 Application.OnTime 함수를 사용하면
정해진 시간마다 또는
일정 주기마다
매크로를 실행하는 것이 가능합니다.
이전에 포스팅 했던
VBA를 사용한 디지털 시계 만들기가 그 예시입니다.
VBA를 사용한 디지털 시계 만들기
다음 그림과 같이 간단한 VBA 코드로 실시간으로 시간을 표시하는 디지털 시계를 만들어 보겠습니다. 먼저 시간을 표시할 셀을 하나 선택하고 다음 그림과 같이 [ =now() ] 함수를 입력합니다. 그럼
karuru1007.tistory.com
Application.OnTime 함수는 네 가지 매개변수를 사용합니다.
Application.OnTime EarliestTime, Procedure, LatestTime, Schedule
(EarliestTime)
매크로가 실행될 가장 빠른 시간입니다.
TimeValue 함수를 사용하여 시간 값을 입력할 수 있습니다.(Procedure)
실행될 매크로의 이름 또는 매크로가 들어 있는 모듈의 이름입니다.(LatestTime)
매크로가 종료될 시간입니다.
EarliestTime과 마찬가지로 TimeValue 함수를 사용하여 시간 값을 입력할 수 있습니다.
(Schedule)
매크로가 주기적으로 실행되도록 할지 여부를 결정합니다.
True로 설정하면 매크로가 주기적으로 실행되고,
False로 설정하면 매크로가 한 번만 실행됩니다.
기본값은 True입니다.
예를 들어, 아래 코드는
현재 시간으로부터 1분 후에
"Macro_Name"이라는 이름의 매크로를 실행합니다.
Application.OnTime Now + TimeValue("00:01:00"), "Macro_Name"
또 다른 예를 들어보면 아래 코드는
12시 정각에 매크로가 실행되도록 예약하며,
한번만 실행이 됩니다.
Application.OnTime TimeValue("12:00:00"), "Macro_Name", , False
Application.OnTime 함수에 대한 예시 코드입니다.
1. 매일 정해진 시간에 작동하는 코드
Sub ScheduleSaveWorksheet()
Application.OnTime TimeValue("17:00:00"), "SaveWorksheet"
End Sub
위 코드는 17시에 SaveWorksheet 함수를 호출합니다.
2. 일정시간마다 반복적으로 매크로 실행하기
Sub ScheduleCalculate()
Application.OnTime Now + TimeValue("00:01:00"), "Calculate"
End Sub
위 코드는 현재 시간부터 1분마다 Calculate 함수를 호출합니다.
3. 예약된 매크로 취소하기
앞서 예로 들었던(1번) 매크로를 취소 하려면 아래와 같이 코드를 작성하면 됩니다.
Sub ScheduleSaveWorksheet()
On Error Resume Next
Application.OnTime TimeValue("17:00:00"), "SaveWorksheet", , False
On Error GoTo 0
End Sub
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
'EXCEL VBA' 카테고리의 다른 글
엑셀 각 시트의 자료 취합하기, 엑셀 각 시트의 자료 하나의 시트로 모으기 (1) | 2023.10.03 |
---|---|
선택한 셀의 행렬 강조하기, 선택한 셀 행렬 색으로 강조하기 (0) | 2023.09.24 |
VBA를 사용한 디지털 시계 만들기 (3) | 2023.03.10 |
엑셀 셀에 값 입력하는 방법 (0) | 2023.01.02 |
Vba 웹 크롤링 네이버 영화순위, vba Selenium (0) | 2020.11.29 |