엑셀 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 |