엑셀 VBA에서 If 문은 조건을 확인하고 특정 작업을 실행하는 제어문입니다.
즉, 주어진 조건이 참(True)일 때만 특정 코드 블록을 실행할 수 있습니다.
1. 기본 문법
If 조건 Then
' 실행할 코드
End If
|
- 조건 → True 또는 False를 반환하는 표현식
- 조건이 True이면 코드 실행, False이면 실행 안 함
2. 기본 사용 예제
Sub 기본_If()
Dim 점수 As Integer
점수 = 85
If 점수 >= 80 Then
MsgBox "합격입니다!"
End If
End Sub
|
📌 출력: "합격입니다!"
📌 점수가 80 이상이면 메시지 출력
3. If...Else 문 사용
Sub If_Else_사용()
Dim 점수 As Integer
점수 = 65
If 점수 >= 80 Then
MsgBox "합격입니다!"
Else
MsgBox "불합격입니다."
End If
End Sub
|
📌 출력: "불합격입니다."
📌 점수가 80 이상이면 "합격입니다!", 아니면 "불합격입니다." 출력
4. If...ElseIf...Else 문 사용
Sub ElseIf_사용()
Dim 점수 As Integer
점수 = 75
If 점수 >= 90 Then
MsgBox "A 학점"
ElseIf 점수 >= 80 Then
MsgBox "B 학점"
ElseIf 점수 >= 70 Then
MsgBox "C 학점"
Else
MsgBox "F 학점"
End If
End Sub
|
📌 출력: "C 학점"
📌 점수에 따라 "A 학점", "B 학점", "C 학점", "F 학점" 중 하나 출력
5. If 한 줄로 사용
Sub 한줄_If()
Dim 점수 As Integer
점수 = 95
If 점수 >= 90 Then MsgBox "A 학점"
End Sub
|
📌 출력: "A 학점"
📌 한 줄로 간단하게 조건문 작성 가능 (Then 뒤에 코드 1줄만 가능)
6. 논리 연산자 사용 (And, Or)
Sub 논리연산자_사용()
Dim 나이 As Integer
나이 = 25
If 나이 >= 18 And 나이 <= 30 Then
MsgBox "청년입니다."
Else
MsgBox "청년이 아닙니다."
End If
End Sub
|
📌 출력: "청년입니다."
📌 And 사용하여 범위 조건 설정 (18 ≤ 나이 ≤ 30)
Sub Or_사용()
Dim 날씨 As String
날씨 = "비"
If 날씨 = "비" Or 날씨 = "눈" Then
MsgBox "우산을 챙기세요!"
Else
MsgBox "날씨가 맑습니다."
End If
End Sub
|
📌 출력: "우산을 챙기세요!"
📌 Or 사용하여 여러 조건 중 하나라도 참이면 실행
7. 셀 값 확인하여 조건 실행
Sub 셀값_확인()
If Range("A1").Value > 50 Then
MsgBox "A1의 값이 50보다 큽니다."
Else
MsgBox "A1의 값이 50 이하입니다."
End If
End Sub
|
📌 A1 셀 값이 50보다 크면 "A1의 값이 50보다 큽니다." 출력
8. 여러 개의 셀 값 확인 (For Each 활용)
Sub 여러셀_조건확인()
Dim rng As Range, cell As Range
Set rng = Range("A1:A10")
For Each cell In rng
If cell.Value >= 80 Then
cell.Interior.Color = RGB(144, 238, 144) ' 연한 초록색
Else
cell.Interior.Color = RGB(255, 99, 71) ' 빨간색
End If
Next cell
End Sub
|
📌 A1:A10 범위에서 80 이상이면 초록색, 아니면 빨간색으로 변경
9. If 문을 활용한 텍스트 비교 (LCase, UCase 사용)
Sub 대소문자_무시()
Dim 입력값 As String
입력값 = LCase(InputBox("정답을 입력하세요:"))
If 입력값 = "vba" Then
MsgBox "정답입니다!"
Else
MsgBox "틀렸습니다."
End If
End Sub
|
📌 입력값을 소문자로 변환 후 비교 (LCase 사용)
📌 "VBA", "vBa", "Vba" 등 입력해도 "정답입니다!" 출력
10. 배열과 If 문 활용
Sub 배열_조건()
Dim 점수() As Integer
점수 = Array(95, 80, 70, 60, 85)
Dim i As Integer
For i = LBound(점수) To UBound(점수)
If 점수(i) >= 80 Then
Debug.Print "점수: " & 점수(i) & " (합격)"
Else
Debug.Print "점수: " & 점수(i) & " (불합격)"
End If
Next i
End Sub
|
📌 배열을 활용하여 점수가 80 이상이면 "합격", 아니면 "불합격" 출력
11. 중첩 If 문 (If 안에 If)
Sub 중첩_If()
Dim 점수 As Integer
점수 = 90
If 점수 >= 80 Then
If 점수 >= 90 Then
MsgBox "A 학점"
Else
MsgBox "B 학점"
End If
Else
MsgBox "C 학점"
End If
End Sub
|
📌 출력: "A 학점"
📌 If 문 안에서 다시 If 문을 사용하여 세부 조건 확인
📝 정리
기능
|
VBA 코드
|
기본 If 문
|
If 조건 Then ... End If
|
If...Else 문
|
If 조건 Then ... Else ... End If
|
If...ElseIf...Else 문
|
If 조건1 Then ... ElseIf 조건2 Then ... Else ... End If
|
한 줄 If 문
|
If 조건 Then 실행문
|
논리 연산자 (And, Or)
|
If A And B Then ...
|
셀 값 확인
|
If Range("A1").Value > 50 Then ...
|
여러 셀 값 확인 (For Each)
|
For Each cell In rng: If cell.Value > 80 Then ... Next cell
|
문자열 비교 (LCase)
|
If LCase(입력값) = "vba" Then ...
|
중첩 If 문
|
If 조건1 Then If 조건2 Then ... End If
|
🔥 VBA의 If 문을 활용하면 다양한 조건을 적용하여 자동화할 수 있습니다! 🚀