엑셀 VBA (기초3)
안녕하세요!
오늘은 이전 엑셀VBA(기초2) 글에서 조건문을 나타내는 IF문 설명에 이어서, VBA의 또다른 조건문 형태인 Select문에 대해 짧게 작성해 보려고 합니다.
1) If문과 Select문의 비교
Selcet문은 If문과 기능적으로는 같다고 할 수 있습니다.
논리 조건에 따라 값을 계산하거나, 특정 값을 넣어주기 때문입니다.
그렇다면 기능적으로 동일한데, VBA에서는 왜 IF문과 Select문이 함께 있는 걸까요?
그것은 코드 작성의 편리성과 가독성 때문입니다.
즉 몇몇 상황에서는 IF문을 사용하는 것이 사용자로 하여금 코딩하기 편리하고, 또 다른 상황에서는 Select문이 더욱 편리하기 때문입니다.
2) 기본적인 Select 형태 및 코드 특징
Select 문의 기본 형태와 예시는 다음과 같습니다.
'예시코드
' 처음 함수를 정의할 때 함수명과 매개변수를 선언언합니다.
' 예시 코드에서는 A가 함수명, x가 매개변수입니다.
Public function A(x)
' x라는 매개변수에 따라 Select 조건문을 실행할 것을 알려줍니다.
Select Case x
' Case 옆에 조건을 작성해줍니다.
' 예시에서는 x의 값이 "셔츠"일때를 뜻합니다.
Case "셔츠"
' Case밑에는 해당 조건일 때의 어떤 내용을 실행할지를 작성해줍니다.
' 예시에서는 x의 값이 "셔츠"이면 함수 A는 "옷"을 출력해줍니다.
A = "옷"
Case "햄버거"
A = "음식"
Case "핸드폰"
A = "전자기기"
End Select
예시코드에서 알 수 있듯 조건을 작성해주는 Case옆에 따로 x = "셔츠" 와 같은 식으로 x=을 작성해주지 않아도 됩니다.
이러한 측면에서 작성도 편리하다고 할 수 있곘습니다.
또한 Case문이 반복되는 형태를 가짐으로써 코드의 가독성면에서도 장점을 가지고 있습니다.
3) 다양한 Select 문의 활용
한편 Case문은 If문과 마찬가지로 조건을 문자, 숫자, 논리구조 등 다양하게 설정할 수 있습니다.
'예시코드2
'함수를 선언합니다. 함수명은 B이고 매개변수는 y입니다.
Public Function B(y)
' y값에 따라서 Select문을 진행합니다.
Select Case y
' y가 숫자인 경우에도 조건을 걸 수 있습니다.
Case 5
B = y * 2
' 조건의 설정을 특정 범위로 할 수도 있습니다.
' 해당 내용에서는 1부터 4까지입니다. (1,2,3,4)
Case 1 to 4
B = y
' 앞선 예시와 마찬가지로 문자로도 조건을 걸 수 있습니다.
Case "가"
B = "문자입니다."
' IS라는 조건의 설정으로 범위를 더욱 다양하게 설정할 수 있습니다.
Case IS > 5
B = "5보다 큽니다."
4) IF문과 Select문의 선택
이와 같이 Select문은 IF문과 마찬가지로 문자, 숫자, 논리 등 다양한 방식으로 구현할 수 있습니다
그렇다면 실제 코드에서 어떨 때 IF문을 쓰고 어떨 때 Select Case문을 쓰면 될까요?
이에 대한 정리를 표로써 설명해드리고 글을 마무리하겠습니다.
또한 직접 코드를 짜보시면서 IF문과 Select문의 사용 차이를 직접 경험하시면 이해가 더욱 잘 되시리라 생각합니다.
기준 | IF문 | Select문 |
조건 수 | 조건이 많지 않을 때 | 조건이 많을 때 |
조건 내용 | 복잡할 경우 | 단순할 경우 (단일 값 비교 등) |
가독성 | 조건이 늘어날수록 가독성 떨어짐 | 조건이 많아도 가독성이 떨어지지 않음 |
예시 | If x > 10 and y > 5 | Select Case x |
그럼 이상으로 VBA의 Select문에대한 설명을 마치도록 하겠습니다.
긴 글 읽어주셔서 감사합니다. 조금이라도 도움이 되었으면 좋겠습니다!