If, Then, ElseIf, Else, End If
If 문은 조건에 따라 계산을 다르게 할 때 사용한다.
If를 입력하면 반드시 End If는 따라와야 한다.
If에서 입력했던 조건과 다른 조건이 있으면
ElseIf를 입력하면 되고
특정 조건 외에 모든 경우에 대해서는
Else를 입력하면 된다.
Sub Button_Click()
Dim i As Integer
For i = 1 To 10
If i < 3 Then
Cells(i, 1) = 1
ElseIf i < 6 Then
Cells(i, 1) = 2
Else
Cells(i, 1) = 3
End If
Next i
End Sub
위 코드는 i를 1부터 10까지 1씩 증가시키면서
i가 3보다 작을 때는 i번째 행, 첫번째 열에 1을 입력하고
i가 6보다 작을 때는 i번째 행, 첫번째 열에 2를 입력하고
그 외에는 i번째 행, 첫번째 열에 3을 출력하라는 거다.
i가 1이면 i < 3 에도 해당하고, i < 6에도 해당하지만
먼저 나온 조건에 맞게 계산을 하므로
A1 셀에는 1이 입력된다.
If와 ElseIf에는 Then이 붙지만
Else는 단독으로 사용한다.
마지막에는 반드시 End If를 입력하자.
위 코드를 실행하면 다음과 같은 결과를 얻게 된다.
If 문 안에 If 문이 반복해서 들어가도 된다.
Sub Button_Click()
Dim i As Integer, j As Integer
For i = 1 To 10
For j = 1 To 10
If i < 6 Then
Cells(i, j) = i + j
Else
Cells(i, j) = 2 * i + j
End If
Next j
Next i
End Sub
위 코드는 i를 1부터 10까지 1씩 증가시키면서
j를 1부터 10까지 1씩 증가시켜서
i가 6보다 작을 경우 i + j 를 계산하고
그외의 경우 2 * i + j 를 계산해서
i번째 행, j번째 행에 출력하라는 것이다.
위 코드를 실행하면 다음과 같은 결과를 얻게 된다.
IIf
If 대신 IIf를 사용할 수도 있는데
IIf는 Excel 수식의 IF 함수와 사용법이 같다.
IIf(조건, 맞을 경우, 틀릴 경우)
Sub Button_Click()
MsgBox IIf([A1] = 0, "Zero", "Nonzero")
End Sub
위 코드는 A1 셀에 0이 입력되어 있을 경우 "Zero"
아닐 경우 "Nonzero" 라는 글자를
작은 알림창(MsgBox)으로 띄우라는 거다.
A1 셀에 0을 입력한 후
위 코드를 실행하면 다음과 같은 결과를 얻게 된다.
단순한 조건이면 IIf를 사용하는 것이
If, Then, End If를 사용하는 것보다 간편하지만
조건이 2중, 3중으로 복잡할 경우에는
If를 사용하는 편이 낫다.
'Excel VBA 기초' 카테고리의 다른 글
Excel VBA - Do, Loop (0) | 2023.12.03 |
---|---|
Excel VBA - Select Case (0) | 2023.12.03 |
Excel VBA - For, Next (0) | 2023.12.02 |
Excel VBA - VBA Editor 살펴보기 (2) (0) | 2023.11.30 |
Excel VBA - 변수 (2) (0) | 2023.11.30 |