반응형
다중조건을 처리하는데 있어서 IF~ELSEIF~ELSEIF~ENDIF 와 같이 문법을 적용해서 처리할 수도 있지만 주로 Select Case 문을 이용합니다. 다른 개발언어에서는 Switch Case 라고 하는데 VBA 에서는 Select Case 로 쓰네요. If~ElseIf 보다 좀더 깔끔하고 가독성이 좋습니다.
1. Select Case 문법
▼ 문법은 다음과 같습니다. 다중 조건 문인 Select Case 에서는 Case 뒤에 오는 조건문이 참일 때 실행되는 구조입니다. IF ~ ELSEIF 보다 단순해서 다중 조건에 많이 사용하는 문법입니다. 만약 일치하는 조건문이 없는 경우 Case Else 문이 실행됩니다.
Select Case 조건문 대상
Case 조건1
“반환1”
Case 조건2
“반환2”
[Case .. 문 계속추가함]
Case Else
“어느 Case 문에도 해당하지 않을 때”
End Select
2. 샘플
▼ select case 를 이용한 다중 조건문 샘플은 아래와 같습니다. 사용자가 입력한 값을 Select Case 로 판단해서 결과값을 출력하는 소스입니다.
Sub Input_Click()
Dim inputdata As String
Dim LRegionName As String
inputdata = InputBox("방위를 입력하세요.", "방위")
Select Case inputdata
Case "N"
LRegionName = "North"
Case "S"
LRegionName = "South"
Case "E"
LRegionName = "East"
Case Else
LRegionName = "West"
End Select
MsgBox "방위는 ? " & LRegionName
End Sub
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 ▶ 엑셀 VBA 텍스트 내용을 읽어 와서 시트에 분리해서 넣는 방법 ▶ 엑셀 VBA 이항 논리 연산자 And, Or, Xor 논리 연산자 Not 사용하기 ▶ 엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 |
▼ 함수는 엑셀 시트에 추가한 버튼으로 실행합니다. VBA 에서 InputBox() 함수는 그림처럼 입력박스를 띄울 수 있습니다. 사용자가 입력한 값을 받기 위한 팝업창입니다. 소스를 실행한 결과 화면입니다.
▼ 입력 박스에 값을 넣고 확인을 누르면 화면에 결과 팝업창이 나타납니다. 소스에서 결과를 출력하는 함수는 MsgBox 입니다.
▼ 버튼과 VBA 이벤트 함수를 연결하는 방법은 아래 포스팅을 참고하세요.
https://mainia.tistory.com/1065
https://mainia.tistory.com/5841
※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다. ※ ▶ 엑셀 VBA 개발할 때 로그 출력하는 방법 ▶ 엑셀 VBA 각종 함수 사용법과 샘플 소스 쉽게 얻는 방법 ▶ 엑셀 VBA 텍스트 내용을 읽어 와서 시트에 분리해서 넣는 방법 ▶ 엑셀 VBA 이항 논리 연산자 And, Or, Xor 논리 연산자 Not 사용하기 ▶ 엑셀 VBA 사용자가 선택한 영역 값, 셀 주소 정보 알아 내는 방법 |
반응형
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 함수 Len 문자열의 길이 반환하기 (0) | 2023.11.18 |
---|---|
엑셀 VBA 함수 Mid 문자열의 일부를 추출하기 (1) | 2023.11.18 |
엑셀(VBA) InputBox 함수 이용해서 입력값 받기 (0) | 2023.11.12 |
엑셀 Excel VBA 개발 도구를 이용해서 버튼 삽입하고 함수 연결하기 (2) | 2023.11.11 |
엑셀 VBA IF 지시 구문 사용하는 방법, IF … ELSEIF … ELSE … ENDIF (4) | 2023.09.20 |
엑셀 VBA 파일 다이얼로그 사용하기 (0) | 2023.09.17 |
엑셀 VBA 셀 영역 선택하는 여러가지 방법 (1) | 2023.09.06 |
엑셀 VBA Range 객체 중 Areas 속성 사용하기 (0) | 2023.08.25 |