VBA

엑셀(Excel) VBA IF 문 함수

꼰대 부장 2025. 2. 9. 09:07

엑셀 VBA의 If 문은 특정 조건을 검사하고, 그 조건이 참(True)일 경우 특정 작업을 실행하는 구조입니다. 기본적인 형태는 다음과 같습니다.

if 조건 Then
	실행할 코드
End If

또한, 여러 가지 조건을 다룰 수 있도록 ElseIf와 Else를 사용할 수도 있습니다.

 
If 조건1 Then 
	실행할 코드1 
ElseIf 조건2 Then 
	실행할 코드2 
Else 
	실행할 코드3 
End If

 

아래에서 다양한 예제를 통해 이해해보겠습니다.

 

1. 기본적인 If 문 예제

 

사용자가 입력한 값이 10 이상이면 "10 이상입니다"라는 메시지를 표시하는 간단한 코드입니다.

Sub CheckNumber() 
	Dim num As Integer 
    num = InputBox("숫자를 입력하세요:") 

    If num >= 10 Then 
	    MsgBox "10 이상입니다." 
	End If 
End Sub
 

설명

  • InputBox를 사용하여 숫자를 입력받습니다.
  • If num >= 10 Then을 통해 조건을 확인한 후, 참이면 MsgBox를 실행합니다.
  • 조건이 거짓이면 아무 일도 일어나지 않습니다.

 

2. Else를 활용한 예제

 

숫자가 10 이상이면 "10 이상입니다", 그렇지 않으면 "10 미만입니다"라고 출력하는 코드입니다.

Sub CheckNumberElse() 
	Dim num As Integer 
    num = InputBox("숫자를 입력하세요:") 
    
    If num >= 10 Then 
    	MsgBox "10 이상입니다." 
    Else 
    	MsgBox "10 미만입니다." 
    End If 
End Sub
 

설명

  • If 조건이 참이면 첫 번째 MsgBox가 실행됩니다.
  • Else가 있기 때문에, 조건이 거짓이면 두 번째 MsgBox가 실행됩니다.

 

3. ElseIf를 활용한 예제

 

점수를 입력받아 성적을 판별하는 코드입니다.

Sub CheckGrade()
    Dim score As Integer
    score = InputBox("점수를 입력하세요:")

    If score >= 90 Then
        MsgBox "A 학점입니다."
    ElseIf score >= 80 Then
        MsgBox "B 학점입니다."
    ElseIf score >= 70 Then
        MsgBox "C 학점입니다."
    ElseIf score >= 60 Then
        MsgBox "D 학점입니다."
    Else
        MsgBox "F 학점입니다."
    End If
End Sub
 

 

설명

  • ElseIf를 사용하여 여러 개의 조건을 검사할 수 있습니다.
  • score 값이 90 이상이면 "A 학점", 80~89이면 "B 학점"이 되는 식입니다.
  • 모든 조건이 거짓이면 Else가 실행되어 "F 학점"이 출력됩니다.

 

4. 중첩 If 문 예제

 

두 개의 조건을 동시에 확인하는 코드입니다.

Sub CheckEvenNumber()
    Dim num As Integer
    num = InputBox("숫자를 입력하세요:")

    If num >= 0 Then
        If num Mod 2 = 0 Then
            MsgBox "양수이며 짝수입니다."
        Else
            MsgBox "양수이며 홀수입니다."
        End If
    Else
        MsgBox "음수입니다."
    End If
End Sub
 
 

설명

  • 먼저 If num >= 0을 확인하여 양수인지 검사합니다.
  • 그 안에서 다시 If num Mod 2 = 0을 사용하여 짝수인지 검사합니다.
  • Else를 활용하여 각각의 경우에 맞는 메시지를 출력합니다.

 

5. Select Case와 비교

 

If 문 대신 Select Case를 사용할 수도 있습니다. 위의 성적 판별 예제를 Select Case로 변환하면 다음과 같습니다.

Sub CheckGradeCase()
    Dim score As Integer
    score = InputBox("점수를 입력하세요:")

    Select Case score
        Case Is >= 90
            MsgBox "A 학점입니다."
        Case Is >= 80
            MsgBox "B 학점입니다."
        Case Is >= 70
            MsgBox "C 학점입니다."
        Case Is >= 60
            MsgBox "D 학점입니다."
        Case Else
            MsgBox "F 학점입니다."
    End Select
End Sub

 

비교

  • If 문은 여러 개의 조건을 개별적으로 평가합니다.
  • Select Case는 하나의 변수 값을 기준으로 여러 경우를 비교하는 데 적합합니다.
  • Select Case는 가독성이 더 좋을 수 있습니다.

 

6. 논리 연산자 활용

 

And, Or 연산자를 활용하면 여러 조건을 동시에 평가할 수 있습니다.

Sub CheckAge()
    Dim age As Integer
    age = InputBox("나이를 입력하세요:")

    If age >= 18 And age < 65 Then
        MsgBox "성인입니다."
    Else
        MsgBox "미성년자이거나 노인입니다."
    End If
End Sub
 

설명

  • And 연산자를 사용하여 age가 18 이상이면서 65 미만인 경우를 확인합니다.
  • Or 연산자를 사용하면 둘 중 하나의 조건만 만족해도 실행됩니다.

 

7. If 문을 활용한 셀 색상 변경

 

특정 조건을 만족하면 엑셀 셀의 배경색을 변경하는 코드입니다.

Sub ChangeCellColor()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    Dim cell As Range
    Set cell = ws.Range("A1") ' A1 셀을 대상으로 함

    If cell.Value >= 50 Then
        cell.Interior.Color = RGB(255, 0, 0) ' 빨간색
    Else
        cell.Interior.Color = RGB(0, 255, 0) ' 초록색
    End If
End Sub
 

설명

  • Range("A1").Value 값을 기준으로 색상을 변경합니다.
  • RGB(255, 0, 0)은 빨간색, RGB(0, 255, 0)은 초록색을 의미합니다.

엑셀 VBA의 If 문은 매우 강력한 제어문입니다.

위의 예제들을 직접 실행해 보면 더 쉽게 이해할 수 있게 될 것입니다.

'VBA' 카테고리의 다른 글

VBA Selet Case 문 사용법 및 예제  (0) 2025.02.15
엑셀(Excel) VBA GoTo 문으로 이동하기  (0) 2025.02.09
VBA 배열의 선언과 사용  (0) 2025.02.08
VBA 변수와 예제  (0) 2025.02.08
매크로 기록기 사용하기  (0) 2023.03.27