2011-12-28 3 views
0

저는 직장 동료 팀 프로젝트를 진행하고 있습니다. Excel 2003 스프레드 시트는 NT NFS에 있으므로 모두 사용할 수 있습니다. 나는 XLAs를 좋아하지만 그것들에 대한 하나의 성가신 점은 그것들은 워크 북에 의존하지 않는 것처럼 보인다는 것입니다. 하나 설치하면 나머지는 설치하고 그 반대의 경우도 마찬가지입니다. 컴파일시 다른 언어를 사용하면 특정 소스 파일에 대한 라이브러리를 쉽게 연결할 수 있습니다.Excel에서 사용자 지정 VBA 라이브러리 만들기/사용

통합 문서 Excel VBA 사용자 지정 라이브러리를 사용하는 것이 가능하고이를 수행하는 방법이 궁금합니다. 감사합니다

+0

VBA의 장점은 코드가 Excel 문서 자체에 묶여 있다는 것입니다. 추가 기능이 필요한 것은 무엇입니까? 추가 기능을 사용하면 유지 관리가 추가되고 모든 통합 문서에 동일하게 적용 할 코드가 필요한 경우 일반적으로 사용됩니다. – Fink

+0

* .bas 파일로 내보내고 가져올 수있는 모듈을 제외하고 다른 것을 의미합니까? 그 "통합 문서 종속 Excel VBA 사용자 지정 라이브러리"요구 사항을 만족하지 않는 경우 다음 이유를 명확히하십시오. –

답변

0

내가 사용한 해결 방법은 통합 문서를 열 때마다 추가 기능을로드하고 언로드 할 수있는 고유 한 사용자 지정 코드를 작성하는 것이 었습니다. 이것은 고통 스러웠지 만 완벽하게 원하는 기능을 완성했습니다. 모두가 공유 할 수 있도록 NFS에 저장하고 읽기 전용으로 만들었습니다. 라이브러리를 변경하고자 할 때 간단히 쓰기 위해 엽니 다.

1

이 용도로 CustomDocumentProperties를 사용합니다. 추가 기능에는 모든 코드가 들어 있으며 "템플릿"은 작업 할 문서입니다. 템플릿에서 "MyApp"또는 다른 이름의 CustomDocumentProperty를 만듭니다. 추가 기능에서 응용 프로그램 수준 이벤트를 사용하여 workbook_open 호출을 모니터링합니다. 이 경우 열려있는 통합 문서에 응용 프로그램의 CustomDocumentProperty가 포함되어 있는지 확인하십시오. 그렇다면 추가 기능의 UI를 노출하십시오 (예 : 메뉴 표시).

내가 Window_Activate 이벤트를 사용, 그 예에서도 http://www.dailydoseofexcel.com/archives/2004/07/16/custom-document-properties/

참조하십시오. 올바른 유형의 통합 문서가 활성화되면 사용자 지정 도구 모음을 표시합니다. 비활성화 된 경우 숨 깁니다.

+0

나는이 문서가 단지 마스터 파일이라는 말을해야한다고 말했다. 각 팀원은 원격으로 외부 Excel 문서를 변경하고이 변경 내용을 내가 언급 한 파일 인 마스터 파일에 "커밋"합니다. 그 이유는 셰이프의 변경 내용을 병합하는 기능이 필요하며 통합 문서 공유는이를 수행하지 않으며 한 번에 한 사람 만 문서에 대한 쓰기 권한을 가질 수 있습니다. 어쨌든 이러한 개발 영역은 모두 거의 동일한 VBA 코드를 공유하며 변경 사항이 발생할 때마다 다른 사람에게 변경해야합니다. – Wes

+0

.bas 파일이 변경 될 때마다 원격 Excel 문서마다 수동으로 다시 가져와야하기 때문에 가져 오기/내보내기 모듈이 작동하지 않습니다. 추가 기능은 한 번만 한 번만 변경하면되므로 문제를 해결합니다. – Wes

+0

딕 (Dick)에 대한 응답으로 내가 제안한 것을 이용하게 될 것입니다. 그러나 근본적인 문제는 여전히 남아 있습니다. 엑셀 통합 문서를 열어 둘 중 하나에서 추가 기능을 사용하는 경우, 추가 기능을 모두 설치하지 않고 그 중 하나만 설치하면 어떻게됩니까? 어쩌면 나는 단정 한 사람일지도 모른다. – Wes

관련 문제