2012-03-13 3 views
10

VBA에서 작업 할 때 코드를 복제하지 않으려면 가장 좋은 방법은 무엇입니까?VBA에서 코드를 다시 사용하는 방법

필자는 import 문을 추가하고 모든 클래스의 공용 속성과 함수에 액세스 할 수있는 언어에 익숙하므로 몇 가지 공통 함수로 유틸리티 클래스를 만들고 모든 프로젝트에서 액세스 할 수 있습니다. 가져 오기를 선택합니다. 이러한 기능 중 하나를 업데이트하고 싶을 때마다 한 번의 편집으로 모든 프로젝트에서 작업 할 수 있습니다.

VBA에서이 기능을 복제하는 좋은 방법이 있습니까?

답변

13

다음은 Excel에 초점을 맞춘 내용이지만 모든 Office 제품에도 동일하게 적용됩니다.

쉬운 방법은 재사용 가능한 코드를 Excel 2003의 경우에는 * .xla, Excel 2007 이상의 경우에는 * .xla로 저장하는 것입니다. 그런 다음 추가 기능을 Excel에 추가하면 열려있는 모든 스프레드 시트가 추가 기능에있는 사용자 정의 기능에 액세스 할 수 있습니다. 특정 VBA 코드를 스프레드 시트에 추가하면 추가 기능에 대한 참조를 추가 할 수 있으며 VBA 코드는 추가 기능의 모든 공개 하위 기능 및 클래스에 액세스 할 수 있습니다.

우리 조직에서는 C : \ Program Files \ OrganisationName에 저장되는 3 개의 가정용 추가 기능을 사용합니다. 그리고 누구나 그들에게 접근 할 수 있습니다. 업데이트가 이루어지면 모든 사용자의 하드 드라이브에 새 버전을 복사하고 Excel을 다시 시작하면 새 버전 만 있으면됩니다.

애드 인은에 기능 같은 유틸리티 기능을 포함 :

  • 스프레드 시트/파일/데이터베이스에 데이터를 기록 /에서 데이터를 읽을.

    • 열어 엑셀의 여러 인스턴스가있는 경우 만 : 등
    • 고급 통계 기능을 목록에서

    몇 가지 단점을

  • 을 중복 제거와 같은
  • 일반적인 데이터 조작 하나는 추가 기능을 업데이트 할 수 있고 다른 인스턴스는 읽기 전용 모드입니다.
  • Excel이 충돌하면 자동 복구 모드는 일반적으로 귀하의 추가 기능 (최신 버전의 TBC)에 대한 변경 사항 - 정기적으로 자동 저장하는 몇 가지 도구가 있습니다

대체 방법은 VB 또는 C#에서 xlls 또는 COM 라이브러리를 개발하는 것이지만 이것은 내가 가지고있는 것입니다 시도하지 않았다.

자세한 절차가 필요한 경우 많은 자습서 온라인이 있습니다.

+0

Perfect. 참조를 설정하는 것을 잊어 버렸기 때문에 조금만 붙어 있었지만, 일단 내가 당신의 게시물을 다시 읽었다면, 모든 것이 제대로 작동했습니다. 감사합니다 :) –

+0

귀하의 단점 중 하나 (업데이트) 여기 해결 : http://www.excelguru.ca/content.php?152- 배치 - 추가 - 인 - - - - 네트워크 환경. 희망은 이것이 미래에 여기 오는 누군가를 도울 수 있기를 바랍니다. –

관련 문제