Excel 사용자 지정 함수를 포함하는 추가 기능을 구축 한 경우 해당 함수가 Excel 워크 시트에서는 제대로 작동하지만 다른 통합 문서의 VBA 프로 시저에서는 사용할 수 없다는 사실을 발견했을 수 있습니다. 마치 Visual Basic Editor가 그것들을 _see 할 수없는 것과 같습니다. 글쎄, 그것은 할 수 없기 때문입니다! 이 기사에서는이를 수정할 수있는 방법을 설명합니다 ._ 우선 이것이 실제로 원하는 작업인지 고려하십시오.

추가 기능은 주로 통합 문서에 추가 기능을 추가하기위한 것입니다. Excel 추가 기능을로드하면 모든 통합 문서에서 해당 기능을 즉시 사용할 수 있습니다. 다른 통합 문서에 포함 된 사용자 지정 함수에 의존하는 VBA 프로 시저를 만드는 경우 해당 기능을 사용하려고 할 때마다 다른 통합 문서를 열어야합니다. 애드 인의 사용자 지정 함수도 마찬가지입니다. 추가 기능이로드 된 경우에는 문제가 없지만 통합 문서를 다른 사람에게 메일로 보내거나 작업 그룹에 배포한다고 가정합니다. 추가 기능도 배포해야합니다. 프로 시저에서 직접 액세스 할 수 있도록 통합 문서 코드에 함수 복사본을 포함하는 것이 더 간단 할 수 있습니다 (이름 충돌을 피하기 위해 _Private 함수 _로 만들거나 이름을 변경해야 할 수 있음).

하지 말라는 말이 아닙니다. 먼저 그것에 대해 생각하고 추가 기능을 사용할 수 있다고 확신하는 경우 계속 진행하십시오. 방법은 …​

문제가 언제 발생합니까?

내 통합 문서 중 하나에 대한 절차를 작성하고 있습니다. 내 절차에서는 얼마 전에 생성하여 현재 Excel 사본에 설치된 Martin의 함수 _ 추가 기능에 저장 한 _RemoveSpaces 함수를 사용하고 싶습니다. 그러나 내 절차를 실행하려고하면 오류가 발생합니다.

Visual Basic Editor는 함수가 존재하지 않는 것처럼 작동하지만 실제로 존재한다는 것을 알고 있으며 내 추가 기능 내부의 코드를 보면 볼 수 있습니다. 사실, Add-In 내부에서 실행하면 코드가 제대로 작동합니다.

different 통합 문서의 코드 모듈 내부에서 내 추가 기능의 기능을 _ 볼 수 있도록하려면 Visual Basic Editor가 필요합니다.

추가 기능에 VBA 프로젝트 이름 지정 모든 통합 문서에는 VBA 프로젝트 이름이 있습니다. _VBAProject_라고합니다. 원하는 경우 이름을 변경할 수 있지만 일반적으로 중요하지 않기 때문에 일반적으로 신경 쓰지 않습니다.

Visual Basic 편집기의 Project Explorer 창에 표시된 모든 통합 문서가 “VBAProject”라고하는 이유가 궁금한 적이 있습니까? Microsoft의 추가 기능이 설치되어있는 경우 이름이 다른 것을 볼 수 있습니다. Microsoft 개발자는 VBA 프로젝트 이름 “funcres”에 Analysis ToolPak 추가 기능을 지정했습니다.

가장 먼저 할 일은 애드 인에 고유 한 VBA 프로젝트 이름을 지정하는 것입니다.

이는 다음 단계에서이 이름으로 참조 할 것이며 동일한 이름의 이름이 둘 이상 있으면 Visual Basic Editor에서 사용할 이름을 알지 못하기 때문입니다.

Project Explorer 창에서 추가 기능의 이름을 선택합니다. 아직 열려 있지 않은 경우 Visual Basic Editor의 _Properties Window_를 표시합니다. 속성 _Name_이 하나만 있음을 알 수 있습니다. 다른 이름을 입력하고 Enter를 누르십시오. VBA에 대한 일반적인 명명 규칙을 준수해야합니다 (즉, 잘못된 문자 및 공백 없음). _Project Explorer_에 이름이 즉시 적용되는 것을 볼 수 있습니다.

이제 추가 기능에 대한 변경 사항을 저장하십시오. _Project Explorer_에서 Add-In이 선택되어 있는지 확인하고 File> Save를 선택합니다.

추가 기능에 대한 참조 설정이 단계에서는 추가 기능의 기능을 사용할 통합 문서에 추가 기능이 있음을 알려줍니다. 애드 인에 대한 _ 참조 설정 을 통해이 작업을 수행합니다. _Outlook 또는 _Access_와 같은 다른 프로그램과 통신하기 위해 Excel 코드를 작성하려는 경우 이전에이 기술을 접했을 수 있습니다.

편리한 경우이 시점에서 Excel을 다시 시작합니다. 이름이 변경된 추가 기능이 다시로드되고 보려는 목록이 새로 고쳐지기 때문입니다. 편리하지 않다면 귀찮게하지 마십시오. 다음 단락을 읽고 무엇을 할 것인지 결정하십시오.

추가 기능의 기능을 사용하려는 통합 문서에서 코드 모듈을 연 다음 도구> 참조로 이동하여 모든 라이브러리 및 추가 기능과 같은 기타 개체의 목록을 볼 수있는 참조 대화 상자를 엽니 다. 참조를 설정할 수 있습니다. Excel을 다시 시작하면이 목록이 새로 고쳐지고 마지막 단계에서 추가 기능에 지정한 프로젝트 이름을 찾을 수 있습니다. 이름 옆의 상자에 체크 표시를하고 확인 버튼을 클릭합니다.

Excel을 다시 시작하지 않은 경우 참조 대화 상자에서 찾아보기 단추를 클릭하여 추가 기능 파일을 찾아야합니다. 그러면 참조 추가 창이 열립니다. 파일 형식 : 섹션을 _Microsoft Excel 파일 (.xls; .xla) _로 변경 한 다음 추가 기능이 저장된 폴더를 찾습니다.

추가 기능을 선택하고 열기를 클릭합니다. 그러면 추가 기능이 목록에 추가되어 선택할 수 있고 확인을 클릭합니다.

참고 :이 절차를 모두 수행 할 필요는 없습니다! 추가 기능의 VBA 프로젝트 이름을 변경 한 후 Excel을 다시 시작했는지 여부에 따라 하나를 선택합니다.

이제 참조를 설정 한 통합 문서의 모든 모듈에서 추가 기능의 기능을 사용할 수 있으며 Visual Basic 편집기에서 인식됩니다 …​

_Project Explorer_를 보면 통합 문서에 참조가 적용되었음을 알 수 있습니다 …​

참조 추가는이 절차를 수행 한 통합 문서에만 적용된다는 점을 기억해야합니다. 추가 기능의 기능을 사용하려는 각 통합 문서에 대해이 작업을 수행해야합니다.

파일 배포 정보 추가 기능에 대한 참조를 추가 할 때 추가 기능에 대한이 링크는 파일에 “하드 연결”됩니다. 파일을 다른 컴퓨터로 이동하거나 동료에게 배포하는 경우 통합 문서는 컴퓨터에서 동일한 위치에서 동일한 추가 기능을 찾을 것으로 예상합니다. 또한 추가 기능이 컴퓨터에서 이동되거나 삭제되면 통합 문서에서 찾을 수 없으며 코드가 작동하지 않습니다.

어떤 사람들은 이로 인해 발생할 수있는 문제를 피하기 위해 파일과 관련 추가 기능이 항상 동일한 폴더에 있어야한다고 주장합니다. 물론 문제를 해결하기 위해 참조를 다시 설정할 수 있습니다.

이러한 요소를 고려하면 문제가 발생하지 않습니다.