책 내용 질문하기
3회 엑셀
도서
2026 한 권으로 끝내는 시나공 컴활 1급 필기+실기 (컴퓨터활용능력 1급)
페이지
0
조회수
73
작성일
2026-09-01
작성자
김*진
첨부파일

2026_최신기출문제_03회_2025년상시03

-5. 사용자 정의 함수 0/6

-함수 X 수식에 fn구분이 포함되지 않았습니다.

-결과 X [B4]에서의 값이 ()로 정답(효_123-12)과 다릅니다.

정답과 똑같이 작성했는데 오류가 뜹니다. 이유가 무엇이고 어떻게 해야 하나요?

답변
2026-09-02 09:16:25

안녕하세요.

작업하신 파일을 직접 첨부해 주시면 좀더 정확한 답변이 가능합니다.

향후 질문에 참고하세요.

첨부 그림의 VBA 코드를 보면 fn구분 함수 자체는 문제의 조건에 맞게 작성되어 있습니다. 따라서 채점 메시지의 핵심은 VBA 코드보다는 워크시트 B4:B43에 fn구분 함수를 이용한 수식이 입력되어 있지 않은 것으로 보입니다.

채점 메시지가 정확히 다음과 같습니다.

함수 X 수식에 fn구분이 포함되지 않았습니다.
결과 X [B4]에서의 값이 ()로 정답(효_123-12)과 다릅니다.

즉 채점기는 VBA 모듈에 함수가 있는지만 보는 것이 아니라, B4:B43 셀에서 실제로 fn구분을 호출했는지도 확인합니다.

VBA 함수는 그림처럼 작성하고,

Public Function fn구분(법정동명, 본번, 부번)

    If 본번 >= 0 And 본번 <= 999 And 부번 >= 0 And 부번 <= 99 Then
        fn구분 = Left(법정동명, 1) & "_" & 본번 & "-" & 부번
    Else
        fn구분 = "확인필요"
    End If

End Function

그다음 반드시 워크시트로 돌아가 B4 셀에 사용자 정의 함수를 호출하는 수식을 입력해야 합니다. 예를 들어 법정동명·본번·부번이 각각 C4, D4, E4에 있다면

=fn구분(C4,D4,E4)

처럼 입력한 후 B43까지 채우기해야 합니다. 실제 인수 셀 주소는 [표1]의 열 위치에 맞춰 지정해야 합니다.

예를 들어 해당 행의 값이

법정동명 = 효자동
본번 = 123
부번 = 12

라면 결과는

효_123-12

가 됩니다.

따라서 이번 오류는 “VBA에서 fn구분을 잘못 작성했다”는 의미가 아닙니다. 채점 메시지상으로는 B4:B43 영역에서 fn구분을 호출하는 수식이 없거나 제대로 입력되지 않은 것이 직접적인 원인입니다.

특히 사용자 정의 함수 문제는 항상 ① VBA에서 함수 작성 → ② 워크시트 셀에서 =fn구분(...)으로 함수 호출 → ③ 지정 영역까지 채우기까지 해야 완성됩니다. VBA 코드만 작성하고 끝내면 지금처럼 0점이 나올 수 있습니다.

즐거운 하루 되세요.

  • 관리자
    2026-09-02 09:16:25

    안녕하세요.

    작업하신 파일을 직접 첨부해 주시면 좀더 정확한 답변이 가능합니다.

    향후 질문에 참고하세요.

    첨부 그림의 VBA 코드를 보면 fn구분 함수 자체는 문제의 조건에 맞게 작성되어 있습니다. 따라서 채점 메시지의 핵심은 VBA 코드보다는 워크시트 B4:B43에 fn구분 함수를 이용한 수식이 입력되어 있지 않은 것으로 보입니다.

    채점 메시지가 정확히 다음과 같습니다.

    함수 X 수식에 fn구분이 포함되지 않았습니다.
    결과 X [B4]에서의 값이 ()로 정답(효_123-12)과 다릅니다.

    즉 채점기는 VBA 모듈에 함수가 있는지만 보는 것이 아니라, B4:B43 셀에서 실제로 fn구분을 호출했는지도 확인합니다.

    VBA 함수는 그림처럼 작성하고,

    Public Function fn구분(법정동명, 본번, 부번)
    
        If 본번 >= 0 And 본번 <= 999 And 부번 >= 0 And 부번 <= 99 Then
            fn구분 = Left(법정동명, 1) & "_" & 본번 & "-" & 부번
        Else
            fn구분 = "확인필요"
        End If
    
    End Function

    그다음 반드시 워크시트로 돌아가 B4 셀에 사용자 정의 함수를 호출하는 수식을 입력해야 합니다. 예를 들어 법정동명·본번·부번이 각각 C4, D4, E4에 있다면

    =fn구분(C4,D4,E4)

    처럼 입력한 후 B43까지 채우기해야 합니다. 실제 인수 셀 주소는 [표1]의 열 위치에 맞춰 지정해야 합니다.

    예를 들어 해당 행의 값이

    법정동명 = 효자동
    본번 = 123
    부번 = 12

    라면 결과는

    효_123-12

    가 됩니다.

    따라서 이번 오류는 “VBA에서 fn구분을 잘못 작성했다”는 의미가 아닙니다. 채점 메시지상으로는 B4:B43 영역에서 fn구분을 호출하는 수식이 없거나 제대로 입력되지 않은 것이 직접적인 원인입니다.

    특히 사용자 정의 함수 문제는 항상 ① VBA에서 함수 작성 → ② 워크시트 셀에서 =fn구분(...)으로 함수 호출 → ③ 지정 영역까지 채우기까지 해야 완성됩니다. VBA 코드만 작성하고 끝내면 지금처럼 0점이 나올 수 있습니다.

    즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.