안녕하세요, 책과 관련 없이 오늘 실기 시험 때 본 엑셀 사용자지정함수 문제 질문하고 싶어 올립니다.
한국사점수가 1이라면 한국사점수를 3으로 반환하고, 2라면 4로, 3이라면 5로 반환해야 하는 문제에서(select case 사용) 이렇게 답을 적어도 될지 여쭤봅니다. (fn총점수 = 한국사점수 + 영어점수)
Public Function fn총점수(한국사점수, 영어점수)
Select Case 한국사점수
Case is 1
fn총점수 = 한국사점수 * 3 + 영어점수
Case is 2
fn총점수 = 한국사점수 * 2 + 영어점수
Case is 3
fn총점수 = 한국사점수 * 5 / 3 + 영어점수
End Select
End function
안녕하세요.
제시하신 코드는 한국사점수가 1, 2, 3인 경우에 한해서는 계산 결과가 맞습니다.
예를 들어:
1점 →
1 × 3 = 32점 →
2 × 2 = 43점 →
3 × 5 / 3 = 5
따라서 영어점수까지 더한 최종 결과도 문제에서 요구한 값과 동일합니다.
다만 문제의 의도는 한국사점수 1→3, 2→4, 3→5로 변환하는 것이므로, 시험에서는 다음처럼 직접 작성하는 것이 가장 정확합니다.
Select Case 한국사점수
Case 1
fn총점수 = 3 + 영어점수
Case 2
fn총점수 = 4 + 영어점수
Case 3
fn총점수 = 5 + 영어점수
End Select참고로 Case Is 1, Case Is 2처럼 작성해도 VBA에서 사용할 수 있지만, 단순히 특정 값과 일치하는 경우에는 Case 1, Case 2가 일반적인 표현입니다.
결론적으로 작성하신 코드도 해당 입력값에서 요구 결과를 정확히 반환하므로 기능상 맞습니다. 다만 실기 시험에서는 불필요하게 곱셈·나눗셈으로 변환하지 않고 문제에서 요구한 반환값을 직접 지정하는 방식이 가장 안전합니다.
즐거운 하루 되세요.
-
관리자2026-08-17 12:22:39
안녕하세요.
제시하신 코드는 한국사점수가 1, 2, 3인 경우에 한해서는 계산 결과가 맞습니다.
예를 들어:
1점 →
1 × 3 = 32점 →
2 × 2 = 43점 →
3 × 5 / 3 = 5
따라서
영어점수까지 더한 최종 결과도 문제에서 요구한 값과 동일합니다.다만 문제의 의도는 한국사점수 1→3, 2→4, 3→5로 변환하는 것이므로, 시험에서는 다음처럼 직접 작성하는 것이 가장 정확합니다.
Select Case 한국사점수 Case 1 fn총점수 = 3 + 영어점수 Case 2 fn총점수 = 4 + 영어점수 Case 3 fn총점수 = 5 + 영어점수 End Select참고로
Case Is 1,Case Is 2처럼 작성해도 VBA에서 사용할 수 있지만, 단순히 특정 값과 일치하는 경우에는Case 1,Case 2가 일반적인 표현입니다.결론적으로 작성하신 코드도 해당 입력값에서 요구 결과를 정확히 반환하므로 기능상 맞습니다. 다만 실기 시험에서는 불필요하게 곱셈·나눗셈으로 변환하지 않고 문제에서 요구한 반환값을 직접 지정하는 방식이 가장 안전합니다.
즐거운 하루 되세요.