엑셀 VBA에서 IF 조건문과 SELECT 조건문 사용 방법(다양한 예제)

다양한 프로그래밍 언어로 프로그램을 개발할 때 가장 많이 사용하는 구문이 조건문이 아닐까 생각합니다.

엑셀의 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에서 IF 조건문과 SELECT 조건문 사용 방법(다양한 예제)

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





♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.

답글 남기기