EXCEL VBA

엑셀 VBA 조건에 맞는 코드 실행 : Select Case 문에 대한 기본 개념 및 사용법

카루루1007 2024. 8. 17. 15:06
728x90
반응형

들어가며

 

VBA의 Select Case문은 

다양한 조건을 판단하고,

각 조건에 맞는 코드를 실행하는 데 사용되는

유용한 제어문입니다.

 

If 문과 비슷한 기능을 하지만,

여러 개의 조건을 비교할 때

Select Case문이 간결하고 가독성이 좋다는 장점이 있습니다.

728x90

 

 Select Case 문의 기본 구조

 

Select Case 문의 기본 구조는 다음과 같습니다.

Select Case 표현식
    Case 조건1
        ' 조건1이 참일 때 실행할 코드
    Case 조건2
        ' 조건2가 참일 때 실행할 코드
    Case Else
        ' 어떤 조건에도 해당되지 않을 때 실행할 코드
End Select

표현식에 만족하는 조건을 찾고 

해당 조건에 맞는 코드를 실행합니다.

 

Case Else는

어떤 조건에도 해당되지 않을 때 실행할 코드를 입력하지만,

생량이 가능합니다.

 

 예시코드

 

1. 문자열 비교

Sub 테스트()
    Dim fruit As String
    fruit = "apple"
    
    Select Case fruit
        Case "apple"
            MsgBox "사과입니다."
        Case "banana"
            MsgBox "바나나입니다."
        Case "orange"
            MsgBox "오렌지입니다."
        Case Else
            MsgBox "다른 과일입니다."
    End Select
End Sub

fruit 변수에는 apple이 들어가 있으므로,

위 코드는 아래 부분이 실행이 됩니다.

        Case "apple"
            MsgBox "사과입니다."

 

반응형

2. 숫자 비교

Select Case문은 IS와 함께 쓰일 수 있습니다.

IS와 함께 쓰여 범위 비교도 가능해집니다.

Sub 테스트()
    Dim score As Integer
    score = 85
    
    Select Case score
        Case Is >= 90
            MsgBox "수"
        Case Is >= 80
            MsgBox "우"
        Case Is >= 70
            MsgBox "미"
        Case Else
            MsgBox "가"
    End Select
End Sub

위 코드를 실행하면 아래 부분이 실행이 됩니다.

        Case Is >= 80
            MsgBox "우"

 

숫자를 입력받고, 그 숫자가

양수, 0, 음수 중 어느 것인지 판단하는 코드입니다.

Sub 테스트()
    Dim number As Integer
    
    number = InputBox("숫자를 입력하세요")
    
    Select Case number
        Case Is < 0
            MsgBox "음수입니다."
        Case Is = 0
            MsgBox "0입니다."
        Case Else
            MsgBox "양수입니다."
    End Select
End Sub

 

3. 여러가지 값 비교

한 번에 여러가지 경우를 판단할 수도 있습니다.

Sub 테스트()
    Dim day As Integer
    day = 3
    
    Select Case day
        Case 1, 2, 3
            MsgBox "이번 주 초입니다."
        Case 4, 5
            MsgBox "이번 주 중반입니다."
        Case 6, 7
            MsgBox "주말입니다."
    End Select
End Sub

 

4. 범위 비교

IS 또는 TO와 결합하여 범위 비교도 가능합니다.

Sub 테스트()
    Dim age As Integer
    age = 18
    
    Select Case age
        Case Is < 13
            MsgBox "어린이입니다."
        Case 13 To 19
            MsgBox "청소년입니다."
        Case Else
            MsgBox "성인입니다."
    End Select
End Sub

 

5. Select Case문의 중첩 사용

Sub 테스트()
    Dim gender As String
    Dim age As Integer
    
    gender = "남"
    age = 30
    
    Select Case gender
        Case "남"
            Select Case age
                Case Is < 30
                    MsgBox "젊은 남성입니다."
                Case Else
                    MsgBox "중년 남성입니다."
            End Select
        Case "여"
            Select Case age
                Case Is < 30
                    MsgBox "젊은 여성입니다."
                Case Else
                    MsgBox "중년 여성입니다."
            End Select
    End Select
End Sub

 

6. 간단한 사칙연산 프로그램

두 개의 숫자를 입력받고

연산기호를 입력받아

연산기호에 따른 결과를 출력하는 코드입니다.

Sub 테스트()
    Dim num1 As Double, num2 As Double
    Dim operation As String
    
    num1 = InputBox("첫 번째 숫자를 입력하세요")
    num2 = InputBox("두 번째 숫자를 입력하세요")
    operation = InputBox("연산을 선택하세요 (+, -, *, /)")
    
    Select Case operation
        Case "+"
            MsgBox num1 & " + " & num2 & " = " & num1 + num2
        Case "-"
            MsgBox num1 & " - " & num2 & " = " & num1 - num2
        Case "*"
            MsgBox num1 & " * " & num2 & " = " & num1 * num2
        Case "/"
            MsgBox num1 & " / " & num2 & " = " & num1 / num2
        Case Else
            MsgBox "잘못된 연산입니다."
    End Select
End Sub

 

여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.

엑셀 공부하기
VBA 공부하기

728x90
반응형