반응형
매번 값을 입력하고 매크로를 눌러야 원하는 값이 나왔는데,
값을 입력하면 바로 값이 표시되도록 사용자 정의함수를 만들 수 있습니다.
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)이라고 입력하고 엔터키를 누르면 '홀수'라고 입력됩니다.
반응형
'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 |