본문 바로가기
  • 안녕하세요! 금융, 책, 코딩을 기록합니다
'코'딩/VBA

엑셀 VBA (기초3)

by 금책코 2025. 5. 25.

 

안녕하세요! 

 

오늘은 이전 엑셀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문에대한 설명을 마치도록 하겠습니다.

 

 

긴 글 읽어주셔서 감사합니다. 조금이라도 도움이 되었으면 좋겠습니다!

''코'딩 > VBA' 카테고리의 다른 글

엑셀 VBA (기초2)  (0) 2025.05.04
엑셀 VBA (기초1)  (0) 2025.04.13