Excel VBA 기초

Excel VBA - If

kwangpal 2023. 12. 3. 00:53
반응형

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