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





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기