If…Then…Else…End If 명령문

조건부로 표현식 값에 따라 명령문 그룹을 실행합니다.

구문

If condition Then statements [Else elsestatements] 또는 블록 양식 구문을 사용할 수 있습니다.

If condition Then
   [statements]
[ElseIf condition-n Then
   [elseifstatements]] . . .
[Else
   [elsestatements]]
End If

인수:

  • Condition: 적합한 표현식입니다. True 또는 False로 평가되는 숫자 또는 문자열 표현식입니다. 조건이 Null인 경우 조건은 False로 처리됩니다.

  • Statements: 콜론으로 구분되는 1개 이상의 명령문으로, 조건이 True인 경우 실행됩니다.

  • condition-n: 조건과 동일합니다.

  • Elseifstatements: 연계된 condition-n이 True인 경우 하나 이상의 명령문이 실행됩니다.

  • Elsestatements: 이전 조건 또는 condition-n 표현식이 True가 아닌 경우 하나 이상의 명령문이 실행됩니다.

주석

단순한 짧은 테스트에는 단일 행 형식(첫번째 구문)을 사용할 수 있습니다. 그러나 블록 형식(두번째 구문)은 단일 행 형식보다 더 많은 구조와 유연성을 제공하며 일반적으로 읽기, 유지 관리 및 디버그가 더 쉽습니다. 따라서 단일 행 양식이 지원되지만, 블록 양식을 사용하는 것이 좋습니다.

Note:

단일 행 구문은 지원되지만, 권장되지 않습니다.

단일 행 구문을 사용하면 If...Then 결정의 결과로 여러 명령문을 실행할 수 있지만, 다음 명령문과 같이 모두 동일한 행에 위치하고 콜론으로 구분되어야 합니다.

Dim A,B,C
A=11
If A > 10 Then A = A + 1 : B = B + A : C = C + B

블록 If(두번째 구문)를 실행할 때 조건이 테스트됩니다. 조건이 True이면 Then 뒤에 오는 명령문이 실행됩니다. 조건이 False이면 각 ElseIf(있는 경우)가 차례로 평가됩니다. True 조건이 발견되면 연계된 Then 뒤에 나오는 명령문이 실행됩니다. ElseIf 문 중 True가 아니거나 ElseIf 절이 없는 경우 Else 이후의 명령문이 실행됩니다. Then 또는 Else 뒤에 오는 명령문을 실행한 후 End If 뒤에 오는 명령문으로 계속 실행됩니다.

Else 및 ElseIf 절은 모두 선택사항입니다. If 블록에는 원하는 수만큼 ElseIf 문이 있을 수 있지만, Else 절 뒤에 올 수 있는 명령문은 없습니다. 블록 If 문은 중첩될 수 있습니다. 즉, 서로에 포함됩니다.

Then 키워드 다음에 나오는 항목은 명령문이 블록 If인지 여부를 확인하기 위해 검사됩니다. 동일한 행에서 Then 뒤에 주석 이외의 항목이 나타나면 명령문은 단일 행 If 문으로 처리됩니다.

블록 If 명령문은 행의 첫번째 명령문이어야 합니다. 블록 If는 End If 명령문으로 끝나야 합니다.

예: 조건문

If 명령문 - 조건이 true인 경우 1개의 명령문만 실행합니다.

Dim i, strVal
i=10
If i=10 Then strVal = "Hello"

만약 조건이 true일 때 두 개 이상의 문을 실행하는 경우 각 명령문을 별도의 행에 배치하고 “End If” 키워드로 명령문을 끝내야 합니다.

Dim i, strVal
i=10
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
End If

If...Then...Else 명령문 - 실행할 두 행 세트 중 하나를 선택합니다.

조건이 true인 경우 명령문을 실행하고 조건이 true가 아닌 경우 다른 명령문을 실행하며 "Else" 키워드를 추가해야 합니다.

Dim i 
Dim strVal
i=5
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
Else
    i= i+2
    strVal = "world"
End If

If...Then...ElseIf …Else 명령문 - 실행할 여러 행 세트 중 하나를 선택합니다.

조건이 true인 경우 명령문을 실행하고 첫번째 조건이 true가 아니고 다른 조건이 true인 경우 다른 명령문을 실행합니다. 모든 추가 조건에 대해 ElseIf 키워드를 추가하고 그 뒤에 Else를 추가해야 합니다.

Dim i
Dim strVal
i=14
If i=10 Then
    If i=10 Then strVal = "Hello"
    i = i+1
Elseif i=11 Then
    i= i+2
    strVal = "world"
Else
    i= i+3
    strVal = "world"
End If