VBA for 문 탈출 - VBA for mun talchul

주요 콘텐츠로 건너뛰기

이 브라우저는 더 이상 지원되지 않습니다.

최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요.

Exit 문(Visual Basic)

  • 아티클
  • 09/22/2022
  • 읽는 데 5분 걸림

이 문서의 내용

프로시저 또는 블록을 종료하고 프로시저 호출 또는 블록 정의 다음에 즉시 문으로 제어를 전송합니다.

구문

Exit { Do | For | Function | Property | Select | Sub | Try | While }

Exit Do
표시되는 루프를 Do 즉시 종료합니다. 문 다음에 문으로 실행을 계속합니다 Loop . Exit Do 는 루프 내에서 Do 만 사용할 수 있습니다. 중첩 Do 된 루프 Exit Do 내에서 사용되는 경우 가장 안쪽 루프를 종료하고 다음 상위 수준의 중첩으로 제어를 전송합니다.

Exit For
표시되는 루프를 For 즉시 종료합니다. 문 다음에 문으로 실행을 계속합니다 Next . Exit For는 ... 또는 For Each...NextNext 루프 내에서For만 사용할 수 있습니다. 중첩 For 된 루프 Exit For 내에서 사용되는 경우 가장 안쪽 루프를 종료하고 다음 상위 수준의 중첩으로 제어를 전송합니다.

Exit Function
표시되는 프로시저를 Function 즉시 종료합니다. 프로시저를 호출한 문 다음에 문을 계속 실행합니다 Function . Exit Function 는 프로시저 내에서 Function 만 사용할 수 있습니다.

반환 값을 지정하려면 문 앞에 있는 줄의 함수 이름에 값을 할당할 Exit Function 수 있습니다. 반환 값을 할당하고 한 문에서 함수를 종료하려면 대신 Return 문을 사용할 수 있습니다.

Exit Property
표시되는 프로시저를 Property 즉시 종료합니다. 실행은 프로시저를 호출 Property 한 문, 즉 속성 값을 요청하거나 설정하는 문을 사용하여 계속됩니다. Exit Property 는 속성 Get 또는 Set 프로시저 내에서만 사용할 수 있습니다.

프로시저에서 Get 반환 값을 지정하려면 문 앞에 있는 줄의 함수 이름에 값을 할당할 Exit Property 수 있습니다. 반환 값을 할당하고 한 문에서 프로시저를 Get 종료하려면 대신 문을 Return 사용할 수 있습니다.

Set 프로시저에서 문 Exit Property 은 문과 Return 동일합니다.

Exit Select
표시되는 블록을 즉시 종료 Select Case 합니다. 문 다음에 문으로 실행을 계속합니다 End Select . Exit Select 문 내에서 Select Case 만 사용할 수 있습니다.

Exit Sub
표시되는 프로시저를 Sub 즉시 종료합니다. 프로시저를 호출한 문 다음에 문을 계속 실행합니다 Sub . Exit Sub 는 프로시저 내에서 Sub 만 사용할 수 있습니다.

Sub 프로시저에서 문 Exit Sub 은 문과 Return 동일합니다.

Exit Try
표시되는 또는 Catch 블록을 즉시 종료 Try 합니다. 블록이 Finally 있는 경우 실행이 계속되거나, 그렇지 않으면 문 다음에 있는 문과 End Try 함께 실행됩니다. Exit Try 는 블록 내부가 아니라 a Try 또는 Catch 블록 내에서 Finally 만 사용할 수 있습니다.

Exit While
표시되는 루프를 While 즉시 종료합니다. 문 다음에 문으로 실행을 계속합니다 End While . Exit While 는 루프 내에서 While 만 사용할 수 있습니다. 중첩된 While 루프 Exit While 내에서 사용되는 경우 컨트롤을 루프 위의 중첩된 한 수준인 루프 Exit While 로 전송합니다.

설명

문과 End 문을 혼동 Exit 하지 마세요. Exit 는 문의 끝을 정의하지 않습니다.

예 1

다음 예제에서는 변수가 100보다 크면 루프 조건이 루프를 index 중지합니다. 그러나 루프의 문은 If 인덱스 변수가 Exit Do 10보다 크면 문이 루프를 중지하도록 합니다.

Dim index As Integer = 0
Do While index <= 100
    If index > 10 Then
        Exit Do
    End If

    Debug.Write(index.ToString & " ")
    index += 1
Loop

Debug.WriteLine("")
' Output: 0 1 2 3 4 5 6 7 8 9 10 

예 2

다음 예제에서는 함수 이름 myFunction에 반환 값을 할당한 다음 함수에서 반환하는 데 사용합니다 Exit Function .

Function MyFunction(ByVal j As Integer) As Double
    MyFunction = 3.87 * j
    Exit Function
End Function

예제 3

다음 예제에서는 Return 문을 사용하여 반환 값을 할당하고 함수를 종료합니다.

Function MyFunction(ByVal j As Integer) As Double
    Return 3.87 * j
End Function

추가 정보

  • Continue 문
  • Do...Loop 문
  • End 문
  • For Each...Next 문
  • For...Next 문
  • Function 문
  • return 문
  • Stop 문
  • Sub 문
  • Try...Catch...Finally 문

특정 소스를 반복해서 처리하고 싶을 때 For 반복문을 사용합니다. For 문은 시작값과 증가값 종료값으로 구성되어 있습니다. 시작값은 설정한 증가값을 계속 더해서 종료값보다 커지는 순간 끝나는 구조입니다.

VBA 에서 반복 구문인 For Next 의 형식은 다음과 같습니다. 지정한 횟수 만큼 명령문을 반복하기 위해 사용합니다. 증가값은 사용자가 지정할 수 있으며, 음수(-) 값으로 감소시키는 것도 가능합니다.

For 계산변수 = 시작값 To 종료값 [Step 증가값]
   [명령문]
   [Exit For]
   [명령문]
Next [계산변수]

For Next 반복문에서 증가값인 Step 을 지정하지 않으면 1 을 적용합니다. 아래 샘플은 1 씩 증가시킨 값을 출력하고 합계를 구해서 마지막 셀에 추가하는 소스입니다.

Sub Input_Click_1()
    Dim i As Integer
    Dim total As Integer
    Dim sumdata As Integer
    
    total = 10
    
    '' 1 만큼 증가
    For i = 1 To total
        Cells(i, 1) = i
        sumdata = sumdata + i
    Next
    
    Debug.Print sumdata
    
    Cells(total + 1, 1) = "SUM = " & sumdata
End Sub

그림에 버튼을 누르는 순간 셀 값을 읽어서 합계를 표시합니다.

VBA for 문 탈출 - VBA for mun talchul

다음은 증가값을 사용자가 지정한 경우입니다. Step 다음에 입력한 숫자만큼 i 값이 증가하므로 위의 샘플소스와 달리 한칸씩 건너 뛰면서 읽습니다.

Sub Input_Click_2()
    Dim i As Integer
    Dim total As Integer
    Dim sumdata As Integer
    
    total = 10
    
    '' 2 만큼 증가
    For i = 1 To total Step 2
        Cells(i, 1) = i
        sumdata = sumdata + i
    Next
    
    Debug.Print sumdata
    
    Cells(total + 1, 1) = "SUM = " & sumdata
End Sub

초기값이 종료값보다 큰 경우 증가값을 음수로 지정해서 반복하는 샘플입니다. 시작값을 줄이면서 반복하고 싶을 때 사용하는 방법입니다. 

Sub Input_Click_3()
    Dim i As Integer
    Dim total As Integer
    Dim sumdata As Integer
    
    total = 10
    
    '' 증감 -1
    For i = total To 1 Step -1
        Cells(i, 1) = i
        sumdata = sumdata + i
    Next
    
    Debug.Print sumdata
    
    Cells(total + 1, 1) = "SUM = " & sumdata
End Sub

For Next 문에서 Next 뒤에는 반복 변수값이 들어갑니다. 하지만 보통 생략합니다. 만약 중복해서 For Next 를 지정하고 싶다면 해당 영역에 반복 변수값은 구분을 위해서 Next 뒤에 지정해야 합니다. 

Sub Input_Click_4()
    Dim i As Integer
    Dim co As Integer
    Dim sumdata As Integer
    
    '' 중복 For Next 문
    For i = 1 To 3
        For j = 1 To 5
            co = co + 1
            Cells(co, 1) = co
            
            sumdata = sumdata + co
        Next j
    Next i
    
    Cells(co + 1, 1) = "SUM = " & sumdata
End Sub

6. Exit for 문으로 반복문 빠져나가기

For Next 반복문을 끝나지 진행하지 않고 특정 조건이 되었을 때 빠져나오는 방법은 Exit For 구분을 사용하는 것입니다. 아래 샘플에서는 특정 조건이 되었을 때 For Next 를 종료하기 위해 If 함수를 사용했습니다. 

Sub Input_Click_5()
    Dim i As Integer
    Dim total As Integer
    Dim sumdata As Integer
    
    total = 10
    
    '' 함수 빠져 나가기
    For i = 1 To total
        If sumdata > 30 Then
            Exit For
        End If
        
        Cells(i, 1) = i
        sumdata = sumdata + i
    Next i
    
    Cells(total + 1, 1) = "SUM = " & sumdata
    
End Sub

그림에서 보듯이 합계값이 30 이상인 9 가 되기 전 8까지 반복하고 종료한 결과입니다.

VBA for 문 탈출 - VBA for mun talchul