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
여기를 방문하시면 더 많은 엑셀 관련 자료를 확인할 수 있습니다.
728x90
반응형
'EXCEL VBA' 카테고리의 다른 글
엑셀 VBA에서 Dictionary 사용하기 (0) | 2024.08.21 |
---|---|
엑셀 VBA 엑셀에서 선택된 범위 정보 가져오기 (0) | 2024.08.17 |
엑셀 VBA에서 두 개의 범위가 겹치는 공통 셀 찾기 : Intersect 함수 (0) | 2024.08.16 |
엑셀 VBA Application.Close 와 Application.Quit의 차이 (0) | 2024.08.14 |
엑셀 VBA 매크로 포함된 파일 실행 시 엑셀 화면은 보이지 않고 매크로만 실행되게 하기 (0) | 2024.08.14 |