VBA 대기 기능 | Excel VBA 대기 방법을 사용하는 방법?

Excel VBA 대기 기능

VBA Wait 는 지정된 시간 동안 코드 실행을 일시 중지하는 데 사용되는 기본 제공 함수로, sleep 명령에서 수행하는 작업과 매우 유사하며 application.wait 메서드를 사용하는 코드를 일시 중지합니다.

일부 코드는 완료해야하는 다른 작업으로 인해 다음 코드 줄로 진행하기 전에 시간이 필요합니다. 이 경우 실행될 코드를 중지하고 잠시 멈춘 후 실행을 진행해야합니다. 실행되는 코드를 두 가지 방법으로 일시 중지 할 수 있습니다. 첫 번째는 "Sleep"메서드이고 두 번째는 "Wait"메서드입니다. 이전 기사에서는 VBA 코드를 일시 중지하는 "VBA 절전"방법에 대해 설명했습니다.

이름 자체가 지정된 시간 프레임에 실행될 매크로 코드를 보유한다고 말하는 "기다립니다". 이 방법을 사용하여 코드를 일시 중지해야하는 시간을 지정해야합니다. 다음 예제를 살펴 보겠습니다.

WAIT 함수의 구문은 다음과 같습니다.

코드가 일시 중지되어야하는 시간을 언급해야합니다. 끝에서 볼 수 있듯이 Boolean이라는 것은 결과를 부울 값 즉 TRUE 또는 FALSE로 반환한다는 것을 의미합니다.

지정된 시간이 도착할 때까지 FALSE라고 표시되고 지정된 시간이 도착한 순간 TRUE를 반환합니다.

WAIT는 SLEEP이 Windows 함수 인 내장 함수이기 때문에 SLEEP 함수와 다릅니다. SLEEP 함수에 액세스하기 전에 모듈 상단에 아래 코드를 언급해야합니다. 그러나 WAIT는 이것을 요구하지 않습니다.

암호:

# If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32"(ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems # Else Public Declare Sub Sleep Lib "kernel32"(ByVal dwMilliseconds As Long)'For 32 Bit Systems End If 

Excel VBA 대기 기능 사용 예

이 VBA Wait Excel 템플릿을 여기에서 다운로드 할 수 있습니다 – VBA Wait Excel Template

예 1

정오 14:30:00에 엑셀 작업을하고 있고 시간이 14:40:00이 될 때까지 코드를 일시 중지하려고한다고 가정합니다. 아래 코드를 사용할 수 있습니다.

암호:

 Sub Wait_Example1 () Application.Wait "14:40:00"End Sub 

이 코드는 운영 체제에서 시간이 14:40:00에 도달 할 때까지 Excel의 작동을 중지합니다. 이와 같은 시간을 제공하는 것은 우리가 항상 14:30:00부터 일하는 것은 아니기 때문에 위험합니다.

2 분 동안 기다리려는 코드를 실행할 때마다이를 코드에서 어떻게 참조합니까?

따라서 TIME VALUE 함수와 함께 VBA NOW 함수를 사용하여 현재 시간에서 지정된 시간을 입력 할 수 있습니다.

NOW () 함수는 컴퓨터 시스템에 따라 현재 날짜와 시간을 반환합니다. TIMEVALUE 함수는 24 시간 형식으로 00:00:00부터 23:59:59 즉 11:59:59 PM까지의 시간을 나타냅니다. 문자열 값을 시간 값으로 변환합니다.

예를 들어 NOW () + TIMEVALUE (00:02:30)는 현재 시간 + 2 분 30 초를 의미합니다.

현재 시간이 14:25:30이면 14:28:00가됩니다.

현재 시간에서 다음 10 분까지 코드 실행을 중지하거나 일시 중지하려면 아래 코드를 사용할 수 있습니다.

암호:

 Sub Wait_Example2 () Application.Wait (Now () + TimeValue ( "00:10:00")) End Sub 

정확한 일시 중지를 위해 NOW () 함수를 사용하는 것이 중요합니다. 그렇지 않으면 Excel 통합 문서가 자정까지 일시 중지 될 가능성이 있습니다. 그러나 Esc 키 또는 Break 키를 눌러 언제든지 일시 중지 방법에서 벗어날 수 있습니다 .

예제 # 2

루프가 실행될 때마다 10 초 동안 기다리십시오.

wait 메서드는 루프와 함께 잘 사용됩니다. 루프가 실행될 때마다 10 초 동안 기다려야하는 상황이 있습니다. 예를 들어, 아래 데이터를보십시오.

Profit = (Sales – Cost)를 계산하려면 루프를 만들고 매 루프 후 10 초 동안 기다렸다가 결과가 정확한지 확인하려고합니다. 아래 코드가 그렇게 할 것입니다.

암호:

 Sub Wait_Example3 () Dim k As Integer For k = 2 To 9 Cells (k, 4) .Value = Cells (k, 2)-Cells (k, 3) Application.Wait (Now () + TimeValue ( "00:00) : 10 ")) 다음 k End Sub 

이 코드는 수익 열을 한 줄씩 계산합니다. 첫 번째 줄이 완료된 후 다음 줄을 계산하기 전에 10 초 동안 기다립니다.

VBA 절전 및 VBA 대기

VBA 수면VBA 대기
VBA 내장 함수가 아니며이 함수에 액세스하려면 특수 코드가 필요합니다.VBA 내장 함수이며이 함수에 액세스하는 데 특별한 코드가 필요하지 않습니다.
절전 모드에는 시간 프레임으로 밀리 초가 필요합니다.대기에는 일정한 시간이 필요합니다.
코드를 밀리 초 단위로 지연시킬 수 있습니다.우리는 몇 초 만에 지연시킬 수 있습니다.