Excel VBA Select Case 문 – 예제와 함께 설명

Excel VBA에는 여러 조건을 분석하고 코드를 실행하는 데 사용할 수있는 IF Then Else 구문이 있습니다. 이러한 조건을 기반으로합니다.

여러 조건을 확인할 수있는 또 다른 유사한 구조는 SELECT CASE 문입니다.

Select Case는 원하는 조건이 세 개 이상있을 때 유용합니다. 확인하다. 두 가지 조건과 함께 사용할 수도 있습니다 (하지만 이러한 경우에는 If Then Else가 사용하기 더 쉽다고 생각합니다).

A 등급을 받고 싶을 때 Select Case 문이 유용한 간단한 예입니다. 학생이 채점 한 점수를 기반으로합니다 (이 자습서의 뒷부분에서 예제로 다룹니다).

참고 :이 자습서에서 다루는 모든 예제 코드는 VBA의 모듈에 배치됩니다.

이 자습서에서 다루는 내용 :

Select Case 구문

아래는 Excel의 Select Case 구문입니다. VBA :

Select Case Test_ExpressionCase Value_1Code Block when Test_Expression = Value_1Case Value_2Code Block when Test_Expression = Value_2Case Value_3Code Block when Test_Expression = Value_3Case ElseCode Block when none of the case conditions are metEnd Select
  • Test_Expression : 다른 경우를 사용하여 분석 한 값을 갖는 표현식입니다 (아래 예에서 더 잘 설명 됨).
  • Condition_1, Condition_2,… : 텍스트 표현식이 테스트되는 조건입니다. 조건을 충족하면 주어진 조건에 대한 코드 블록이 실행됩니다.

사용하는 모든 Select Case 문에 대해 End Select 문을 사용해야합니다.

참고 : 조건이 충족되는 즉시 VBA는 select case 구성을 종료합니다. 따라서 5 개의 조건이 있고 두 번째 조건이 충족되면 VBA는 Select Case를 종료하고 나머지 조건은 테스트되지 않습니다.

Select Case Examples

이제 VBA에서 Select Case 문을 사용하는 방법을 더 잘 이해하고 몇 가지 예제를 살펴 보겠습니다.

이 자습서의 대부분의 예제는 개념을 설명하기위한 것입니다. 이것은 작업을 완료하는 가장 좋은 방법 일 수도 있고 아닐 수도 있습니다.

Select Case를 사용하여 조건을 확인하는 방법에 대한 간단한 예부터 시작하겠습니다.

예 1 – 숫자 확인

아래 예에서 코드는 사용자에게 1에서 5 사이의 숫자를 입력하도록 요청한 다음 사용자가 입력 한 번호가있는 메시지 상자를 표시합니다.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 5")Select Case UserInputCase 1MsgBox "You entered 1"Case 2MsgBox "You entered 2"Case 3MsgBox "You entered 3"Case 4MsgBox "You entered 4"Case 5MsgBox "You entered 5"End SelectEnd Sub

이 코드는 유용하지 않으며 완벽하지도 않습니다. 예를 들어, 6 또는 임의의 문자열을 입력하면 아무 작업도 수행되지 않습니다. 하지만 제가 언급했듯이 여기서 제 의도는 Select Case의 작동 방식을 보여주는 것입니다.

예제 2 – IS 조건과 함께 Select Case 사용

Select Case 구성과 함께 IS 조건을 사용할 수 있습니다. 숫자 값을 확인합니다.

아래 코드는 입력 된 숫자가 100보다 큰지 여부를 확인합니다.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case Is >= 100MsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

예제 3 – Case Else를 사용하여 모두 잡기

위의 예에서는 두 가지 조건 (100보다 작거나 100보다 크거나 같음)을 사용했습니다.

Case Else를 사용할 수도 있습니다.

Case Else는 포괄 역할을하며 이전 케이스에 속하지 않는 모든 항목은 Case Else에서 처리됩니다.

다음은 Case Else를 사용한 예제 코드입니다.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number")Select Case UserInputCase Is < 100MsgBox "You entered a number less than 100"Case ElseMsgBox "You entered a number more than (or equal to) 100"End SelectEnd Sub

예제 4 – 숫자 범위 사용

선택 중 경우에 따라 숫자 범위를 확인할 수도 있습니다.

아래 코드는 입력을 요청하고 값에 따라 메시지 상자를 표시합니다.

Sub CheckNumber()Dim UserInput As IntegerUserInput = InputBox("Please enter a number between 1 and 100")Select Case UserInputCase 1 To 25MsgBox "You entered a number less than 25"Case 26 To 50MsgBox "You entered a number between 26 and 50"Case 51 To 75MsgBox "You entered a number between 51 and 75"Case 75 To 100MsgBox "You entered a number more than 75"End SelectEnd Sub

예 5 – 채점 한 점수를 기준으로 등급 얻기

지금까지 기본적인 예를 살펴 보았습니다 (실제 세계에서는 실제로 유용하지 않음).

다음은 Excel VBA에서 Select Case를 사용할 수있는 실제 예제에 더 가까운 예제입니다.

다음 코드는 학생이 기반으로하는 성적을 제공합니다. 시험의 점수.

위 코드는 사용자에게 점수를 요청하고이를 바탕으로 최종 성적이 표시된 메시지 상자를 표시합니다.

위 코드에서 마크 0 – 100에 대해 모든 조건을 지정했습니다.

Select Case를 사용하는 또 다른 방법은 끝에 Case Else를 사용하는 것입니다. 이는 모든 조건을 고려한 다음 조건이 충족되지 않을 때 수행 할 작업을 지정할 때 유용합니다.

아래 코드는 약간 변경된 등급 코드의 변형입니다. 결국 위의 조건 중 어느 것도 참이 아닐 때 실행되는 Case else 문이 있습니다.

예제 6 – Select Case를 사용하여 사용자 정의 함수 (UDF) 만들기

위의 예에서 코드는 사용자에게 마크 입력을 요청했습니다.

일반 워크 시트 함수처럼 사용할 수있는 사용자 정의 함수 (사용자 정의 함수)를 만들 수도 있습니다. 다음은 사용자 지정 수식을 만드는 코드입니다.

다음은 사용자 지정 수식을 만드는 코드입니다.

Function GetGrade(StudentMarks As Integer)Dim FinalGrade As StringSelect Case StudentMarksCase Is < 33FinalGrade = "F"Case 33 To 50FinalGrade = "E"Case 51 To 60FinalGrade = "D"Case 60 To 70FinalGrade = "C"Case 70 To 90FinalGrade = "B"Case ElseFinalGrade = "A"End SelectGetGrade = FinalGradeEnd Function

이 코드가 모듈에서는 아래와 같이 워크 시트에서 GetGrade 함수를 사용할 수 있습니다.

예제 7 – Select Case로 ODD / EVEN 확인

다음은 내가 A1 셀의 숫자가 홀수인지 짝수인지 확인하십시오.

예 8 – 주중 / 주말 확인 (다중 조건)

또한 대소 문자 선택을 사용하여 여러 값을 확인할 수 있습니다. 같은 경우입니다.

예를 들어 아래 코드는 현재 날짜를 사용하여 오늘이 평일인지 주말인지 (주말은 토요일과 일요일 인 경우) 표시합니다.

Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7MsgBox "Today is a Weekend"Case ElseMsgBox "Today is a Weekday"End SelectEnd Sub

위 코드에서 동일한 경우에 두 가지 조건 (1과 7)을 확인합니다.

참고 : Weekday 함수는 일요일에 1을, 토요일에 7을 반환합니다.

참고 : p>

예제 9 – 중첩 된 Select Case 문

또한 하나의 Select Case 문을 다른 문 안에 중첩 할 수도 있습니다.

아래는 요일이 평일인지 여부를 확인하는 코드입니다. 주말이고 주말이면 토요일인지 일요일인지 표시됩니다.

Sub CheckWeekday()Select Case Weekday(Now)Case 1, 7 Select Case Weekday(Now) Case 1 MsgBox "Today is Sunday" Case Else MsgBox "Today is Saturday" End SelectCase ElseMsgBox "Today is a Weekday"End SelectEnd Sub

위 코드에서 주말이 토요일인지 일요일인지 확인하기 위해 Select Case를 중첩했습니다.

참고 : 위에 표시된 예는 개념을 설명하기위한 것입니다. 이것은 평일 / 주말을 찾는 가장 좋은 방법이나 가장 실용적인 방법이 아닙니다.

예제 10 – Select Case로 텍스트 문자열 확인

Select Case를 사용하여 특정 문자열을 확인한 다음 이를 기반으로 코드를 실행합니다.

아래 예제 코드에서는 사용자에게 부서 이름을 입력하도록 요청하고 온 보딩을 위해 연결해야하는 사람의 이름을 보여줍니다.

Sub OnboardConnect()Dim Department As StringDepartment = InputBox("Enter Your Department Name")Select Case DepartmentCase "Marketing"MsgBox "Please connect with Bob Raines for Onboarding"Case "Finance"MsgBox "Please connect with Patricia Cruz for Onboarding"Case "HR"MsgBox "Please connect with Oliver Rand for Onboarding"Case "Admin"MsgBox "Please connect with Helen Hume for Onboarding"Case ElseMsgBox "Please connect with Tony Randall for Onboarding"End SelectEnd Sub

위의 모든 예가 Excel VBA에서 Select Case의 개념과 적용을 이해하는 데 도움이 되었기를 바랍니다.

다음 VBA 자습서도 좋아할 수 있습니다.

  • Excel VBA 루프 – For Next, Do While, Do Until, For Each.
  • Excel VBA의 다음 루프
  • 매크로 기록 방법 Excel.

Write a Comment

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다