책 내용 질문하기
사용자 정의 함수
도서
2025 시나공 컴퓨터활용능력 1급 실기 기본서 (ver.2021)
페이지
119
조회수
80
작성일
2026-06-29
작성자
서*권
첨부파일

VBA 편집기와 관련하여 앞서 질문 하였으나 여러가지 방법으로 해보고 입력오류가 있나


확인도 했으나 틀린점을 찾지 못했습니다


따라하기와 기출문제를 풀어도 결과는 항상 아래와 똑 같습니다


함수인수 대화상자에


도움말을 사용할 수 없습니다


이 함수에는 인수가 필요 없습니다 라고 나오고

확인 누르면 #NAME?가 나옵니다(오류 코드를 찾아 확인해도 이유를 모르겠습니다)



디버그 VBA프로젝트 컴파일을 실행하면


Microsoft Visual Basic for Applications

컴파일 오류입니다

필요한 요소문의 끝 이라 나오고

편집기 화면에는 붉은색으로 Visual Basic Editor 로 표시 됩니다


그리고 정답파일의 코드를 복사해서 붙여넣은후 실행하라 헸는데 복사 가 안됩니다


모듈의 숮자도 할때마다 저장되었는데 삭제해도 그대로 남아 있습니다


어떻게 헤야 할지 모르겠습니다


(※저는 컴맹 상태에서 필기 시험은 시나공필기교재로 공부하여 합격 하였으나 평상시


컴퓨터를 접할기회가 거의 없어서 그런지 선생님의 답변이 이해가 안될 때가 있습니다)

답변
2026-06-30 09:25:34

안녕하세요.

설명해 주신 증상들을 종합해 보면, 개별 문제의 코드 오류라기보다 VBA 프로젝트 자체에 문법 오류가 하나 이상 남아 있는 상태로 보입니다.

특히 아래 증상이 핵심입니다.

함수 인수 대화상자에서 "이 함수에는 인수가 필요 없습니다."

셀에 함수 입력 시 #NAME? 표시

[디버그] → [VBAProject 컴파일] 실행 시

컴파일 오류:

필요한 요소: 문의 끝

VBA 편집기에서 특정 줄이 빨간색으로 표시됨

이 경우 VBA가 정상적으로 컴파일되지 못하므로, 작성한 사용자 정의 함수도 엑셀에서 인식하지 못해 #NAME?가 발생합니다.

확인 방법

VBA 편집기(Alt + F11) 실행

메뉴 [디버그] → [VBAProject 컴파일] 클릭

오류가 발생하면 확인을 누른 후, VBA가 자동으로 이동하는 위치를 확인

해당 줄 또는 그 바로 위쪽 줄에 오타가 없는지 확인


예를 들어 아래와 같은 경우에도 같은 오류가 발생합니다.

Public Function fnTest()

MsgBox "안녕하세요

End Function

(따옴표가 닫히지 않음)


If A = 1 Then

MsgBox "확인"

(End If 누락)


Select Case A

Case 1

MsgBox "확인"

(End Select 누락)


모듈이 삭제되지 않는 경우

모듈을 삭제했는데도 계속 남아 있다면

모듈 창을 닫은 것인지

실제로 모듈 제거(Remove Module) 를 하지 않은 것인지

확인해 보셔야 합니다.


가장 빠른 해결 방법

현재 상태에서는 글만으로 원인을 찾기 어렵습니다.

VBA 편집기 전체 화면(프로젝트 탐색기 + 코드 창이 모두 보이도록) 캡처해서 올려 주시거나, 문제가 발생하는 엑셀 파일을 첨부해 주시면 어느 줄에서 오류가 발생하는지 정확히 확인해 드릴 수 있습니다.

현재 증상으로는 작성한 코드의 문제가 아니라 VBA 프로젝트 어딘가에 문법 오류가 남아 있어서 모든 사용자 정의 함수가 동작하지 않는 상태일 가능성이 가장 높습니다.


즐거운 하루 되세요.

  • 관리자
    2026-06-30 09:25:34

    안녕하세요.

    설명해 주신 증상들을 종합해 보면, 개별 문제의 코드 오류라기보다 VBA 프로젝트 자체에 문법 오류가 하나 이상 남아 있는 상태로 보입니다.

    특히 아래 증상이 핵심입니다.

    함수 인수 대화상자에서 "이 함수에는 인수가 필요 없습니다."

    셀에 함수 입력 시 #NAME? 표시

    [디버그] → [VBAProject 컴파일] 실행 시

    컴파일 오류:

    필요한 요소: 문의 끝

    VBA 편집기에서 특정 줄이 빨간색으로 표시됨

    이 경우 VBA가 정상적으로 컴파일되지 못하므로, 작성한 사용자 정의 함수도 엑셀에서 인식하지 못해 #NAME?가 발생합니다.

    확인 방법

    VBA 편집기(Alt + F11) 실행

    메뉴 [디버그] → [VBAProject 컴파일] 클릭

    오류가 발생하면 확인을 누른 후, VBA가 자동으로 이동하는 위치를 확인

    해당 줄 또는 그 바로 위쪽 줄에 오타가 없는지 확인


    예를 들어 아래와 같은 경우에도 같은 오류가 발생합니다.

    Public Function fnTest()

    MsgBox "안녕하세요

    End Function

    (따옴표가 닫히지 않음)


    If A = 1 Then

    MsgBox "확인"

    (End If 누락)


    Select Case A

    Case 1

    MsgBox "확인"

    (End Select 누락)


    모듈이 삭제되지 않는 경우

    모듈을 삭제했는데도 계속 남아 있다면

    모듈 창을 닫은 것인지

    실제로 모듈 제거(Remove Module) 를 하지 않은 것인지

    확인해 보셔야 합니다.


    가장 빠른 해결 방법

    현재 상태에서는 글만으로 원인을 찾기 어렵습니다.

    VBA 편집기 전체 화면(프로젝트 탐색기 + 코드 창이 모두 보이도록) 캡처해서 올려 주시거나, 문제가 발생하는 엑셀 파일을 첨부해 주시면 어느 줄에서 오류가 발생하는지 정확히 확인해 드릴 수 있습니다.

    현재 증상으로는 작성한 코드의 문제가 아니라 VBA 프로젝트 어딘가에 문법 오류가 남아 있어서 모든 사용자 정의 함수가 동작하지 않는 상태일 가능성이 가장 높습니다.


    즐거운 하루 되세요.

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