다양한 프로그래밍 언어로 프로그램을 개발할 때 가장 많이 사용하는 구문이 조건문이 아닐까 생각합니다.
엑셀의 VBA 프로그램도 마찬가지입니다. VBA 구문에서도 조건문은 정말 많이 사용하게 됩니다.
조건문은 값을 비교해서 크거나 작거나 같거나 같지 않을 때 등의 다양한 조건으로 구문의 흐름을 제어할 때 사용하게 됩니다.
엑셀 VBA에서 가장 대표적인 조건문이 IF 문과 SELECT CASE 문입니다.
이번 글에서는 엑셀 VBA에서 IF 조건문과 SELECT 조건문 사용 방법(다양한 예제)에 대해 알아보겠습니다.
엑셀 VBA에서 If ~ Then ~ Else 조건문 사용하기
▶ 조건문 중에서 가장 보편적으로 많이 사용하는 것이 IF문입니다.
만약 ~ 일 때 어떻게 처리하라는 명령문을 실행하기 위해 IF문을 사용하게 됩니다.
여러가지 조건을 비교해서 조건이 참인 경우 해당 명령을 실행하도록 구현하게 됩니다.
IF문의 구조 : If 조건문 Then 처리구문 [Else 처리구문]
Sub 조건문_If_Else()
Dim i As Integer
i = 1
For Each score In Range(“B2:B5”)
i = i + 1
If score >= 90 Then
Cells(i, 3).Value = “A”
ElseIf score >= 80 And score < 90 Then
Cells(i, 3).Value = “B”
ElseIf score >= 70 And score < 80 Then
Cells(i, 3).Value = “C”
Else
Cells(i, 3).Value = “D”
End If
Next score
End Sub
|
위의 VBA 소스는 IF문을 사용한 가장 기본적인 형태입니다.
B2 셀에서 B5 셀까지 셀의 값을(여기서는 점수) 가져와서 값이 90 이상이면 등급을 “A”, 80~89이면 등급을 “B”, 70~79이면 등급을 “C”, 그 외인 경우 등급을 “D”로 C열의 각 행의 값으로 넣는 로직입니다.
IF와 ElseIF는 조건이 참인지를 확인하고, 마지막 Else는 앞의 조건에 모두 해당되지 않을 때 수행하게 됩니다.
엑셀 VBA에서 Select Case ~ Case ~ Case Else 조건문 사용하기
Select Case문도 자주 사용하는 조건문 중에 하나 입니다.
아래 3가지 예제는 모두 동일할 결과를 수행하는 예제입니다.
그리고 앞의 If문의 실행 결과와도 동일합니다.
▼ 일치하는 문자(String)를 비교하는 사용한 예제
Sub 조건문_Select_Case()
Dim s As String
Dim i As Integer
i = 1
For Each score In Range(“B2:B5”)
s = Left(score, 1) ‘score의 첫번째 한자리
i = i + 1
Select Case s
Case “9”, “1”
Cells(i, 3).Value = “A”
Case “8”
Cells(i, 3).Value = “B”
Case “7”
Cells(i, 3).Value = “C”
Case Else
Cells(i, 3).Value = “D”
End Select
Next score
End Sub
|
- 콤마(,)를 사용하여 비교 대상을 여러 개 지정할 수 있습니다.
(위의 Case “9”, “1”은 예를 들기 위해 사용했을 뿐 잘못된 표현입니다. 10점대와 100점이 모두 A 등급로 표시되게 됩니다.)
▼ Case Is를 사용하여 숫자 범위를 비교하는 예제
Sub 조건문_Select_Case()
Dim s As String
Dim i As Integer
i = 1
For Each score In Range(“B2:B5”)
i = i + 1
Select Case score
Case Is >= 90
Cells(i, 3).Value = “A”
Case Is >= 80 And score < 90
Cells(i, 3).Value = “B”
Case Is >= 70 And score < 80
Cells(i, 3).Value = “C”
Case Else
Cells(i, 3).Value = “D”
End Select
Next score
End Sub
|
▼ Case .. To ..를 사용하여 숫자 범위를 비교하는 예제
Sub 조건문_Select_Case()
Dim s As String
Dim i As Integer
i = 1
For Each score In Range(“B2:B5”)
i = i + 1
Select Case score
Case 90 To 100
Cells(i, 3).Value = “A”
Case 80 To 89
Cells(i, 3).Value = “B”
Case 70 To 79
Cells(i, 3).Value = “C”
Case Else
Cells(i, 3).Value = “D”
End Select
Next score
End Sub
|
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^