EXCEL - VBA

VBA 조건문(3) - Select Case(2) - 사용자 정의함수 만들기

별동산 2022. 11. 8. 08:47
반응형

매번 값을 입력하고 매크로를 눌러야 원하는 값이 나왔는데,
값을 입력하면 바로 값이 표시되도록 사용자 정의함수를 만들 수 있습니다.

1. 학점 구하기

Function grade(rangeA As range)
    Select Case rangeA
        Case 90 To 100
            grade = "A학점"
        Case 80 To 90
            grade = "B학점"
        Case 70 To 80
            grade = "C학점"
        Case 60 To 70
            grade = "D학점"
        Case 0 To 60
            grade = "F학점"
        Case Else
            grade = "0점에서 100점 사이로 입력해 주세요."
    End Select
End Function


A3셀 값에 따라 B3셀에 학점을 입력하는 sub 프로시저 문은 아래와 같았습니다.

Sub selectcase2()
    Select Case range("a2")
        Case 90 To 100
            range("b2") = "A학점"
        Case 80 To 90
            range("b2") = "B학점"
        Case 70 To 80
            range("b2") = "C학점"
        Case 60 To 70
            range("b2") = "D학점"
        Case 0 To 60
            range("b2") = "F학점"
        Case Else
            range("b2") = "0점에서 100점 사이로 입력해 주세요."
    End Select
End Sub


비교하면 아래와 같이 다릅니다.

① sub 프로시저는 sub로 시작하고 end sub로 끝나는데,
함수는 function으로 시작해서 end function으로 끝납니다.

② sub 프로시저에는 인수가 없는데, 함수는 함수명 다음에 인수가 있습니다. 여기서는 범위 변수인 rangeA입니다.

③ sub 프로시저는 b2셀에 직접 값을 입력하는 문장이 있는데, 함수는 함수명=값 식으로 결과값을 반환하므로 수식이 있는 셀에 값이 입력됩니다. 따라서, 함수를 사용하는 것이 B2셀뿐만 아니라 다른 셀에도 넣을 수 있기 때문에 훨씬 편리합니다.

그러나, 조건에 따른 처리는 Select Case 문을 공통적으로 사용하고 있습니다.

이제 C3셀에 =grade(a2)라고 입력하고 엔터키를 누르면
C2셀에 "C학점"이라고 입력됩니다.


2. 짝홀수 구하기

Function 짝홀수(rangeA As range)
    Select Case rangeA
        Case 0
            짝홀수 = "짝수"
        Case Else
            짝홀수 = "홀수"
    End Select
End Function


C3셀에 =짝홀수(A3)이라고 입력하고 엔터키를 누르면 '홀수'라고 입력됩니다.

select case2.xlsm
0.02MB
반응형

'EXCEL - VBA' 카테고리의 다른 글

For Each ~ Next  (0) 2022.11.14
For ~ Next 반복문  (0) 2022.11.11
VBA 조건문(2) - Select Case(1)  (0) 2022.11.07
VBA 조건문(1) - If  (0) 2022.11.04
엑셀 VBA에서 셀 또는 범위 지정하기(3) - 여러 셀 또는 떨어진 셀  (0) 2022.11.03