본문 바로가기
VBA 라이브러리

Choose 함수

2023. 9. 13.

Choose function

인수 목록에서 값을 선택하여 반환합니다.

 

Syntax

Choose(index, choice-1, [ choice-2, ..., [ choice-n ]] )

 

Choose 함수 구문은 다음과 같은 구성 요소로 되어 있습니다.

 

index : 필수적인 요소. 1과 사용 가능한 수 중에서 하나의 값을 갖는 필드나 수식입니다.

choice : 필수적인 요소. 가능한 선택 중 하나를 포함하는 Variant 식입니다.

 

참고

Choose는 index 값에 따라 선택 목록에서 하나의 값을 반환합니다. 만일 index가 1인 경우 Choose는 목록의 첫 번째 선택값을 반환하고, index가 2인 경우 목록의 두 번째 값을 반환합니다.

가능한 값들의 목록에서 하나의 값을 찾을 때 Choose를 사용할 수 있습니다. 예를 들어 choice-1= "one", choice-2= "two", choice-3= "three"인 경우 index가 3이라면 Choose는 "three"를 반환합니다. 이 기능은 index가 선택 그룹 안의 값을 갖는 경우 특히 유용하게 사용할 수 있습니다.

Choose는 반환하는 값이 단 하나인 경우에도 목록의 모든 선택 항목을 평가합니다. 이러한 이유로 예상치 않은 결과가 나올 수도 있기 때문에 주의를 기울여야 합니다. 예를 들어 사용자가 전체 선택 항목 중에 식의 일부로 MsgBox 함수를 사용하는 경우 Choose가 선택 항목 중 하나의 값만을 반환하는 경우에도 평가되는 각 선택 항목마다 메시지 상자가 각각 표시됩니다.

Sub TestChoose()
    Dim index As Integer
    Dim result
    index = 1
    result = Choose(index, MsgBox("First choice"), MsgBox("Second choice"))
End Sub


index가 1보다 작거나 열거된 선택 항목 수보다 큰 경우 Choose 함수는 Null 값을 반환합니다.

Sub TestChoose()

    Dim result As Variant

    result = Choose(0, "Apple", "Banana", "Cherry")

    Debug.Print result

    result = Choose(2, "Apple", "Banana", "Cherry")

    Debug.Print result

    result = Choose(4, "Apple", "Banana", "Cherry")

    Debug.Print result

End Sub

' Output
' Null
' Banana
' Null


만일 index가 정수가 아닌 경우 정수 부분만 사용됩니다.

Sub TestChoose()
    Dim result As Variant

    result = Choose(1.4, "Apple", "Banana", "Cherry")
    Debug.Print result

    result = Choose(2.6, "Apple", "Banana", "Cherry")
    Debug.Print result
End Sub

' Output
' Apple
' Banana

 

아래 예제에서는 Choose 함수를 사용하여 Ind 매개 변수의 프로시저에 전달되는 인덱스에 대한 응답으로 이름을 표시합니다.

Function GetChoice(Ind As Integer)
    GetChoice = Choose(Ind, "Speedy", "United", "Federal")
End Function

 

도움말 출처

 

Choose function (Visual Basic for Applications)

Office VBA reference topic

learn.microsoft.com

 

'VBA 라이브러리' 카테고리의 다른 글

Environ 함수  (0) 2023.09.13
날짜 및 시간 관련 함수  (0) 2023.08.25
WeekdayName 함수  (0) 2023.08.24
MonthName 함수  (0) 2023.08.24
InStrRev 함수  (0) 2023.08.24