2008-08-27 2 views
3

저는 Excel 기반 데이터베이스보고 도구를 작성했습니다. 현재 모든 VBA 코드는 단일 XLS 파일과 연결되어 있습니다. 사용자는 도구 모음의 단추를 클릭하여 보고서를 생성합니다. 불행히도 사용자가 파일을 다른 파일 이름으로 저장하지 않으면보고 된 모든 데이터가 지워집니다.Excel 응용 프로그램을 패키지하고 배포하는 가장 좋은 방법은 무엇입니까

Word에서 비슷한 도구를 만들었 으면 모든 코드를 템플릿 (.dot) 파일에 넣고 여기에서 호출 할 수 있습니다. Office 시작 폴더에 서식 파일을 넣으면 Word를 시작할 때마다 시작됩니다. Excel에서 코드를 패키지화하고 배포하는 것과 비슷한 방법이 있습니까? 추가 기능을 사용하여 시도했지만 응용 프로그램 창에서 코드를 호출하는 방법을 찾지 못했습니다.

답변

2

excel 시작 디렉터리에 저장된 사용자의 personal.xls 파일을 수정할 수 있습니다 (Office 버전마다 다릅니다). 당신이 많은 사용자를 가지고 있지만, 그럴 수 있습니다.

문제를 해결할 수있는 다른 방법은 템플릿 (.xlt) 파일에 매크로를 저장하는 것입니다. 그런 다음 사용자가 열면 원래 파일에 다시 저장할 수 없지만 파일을 저장할 새 파일 이름을 지정해야합니다. 이 방법의 단점은 저장 한 각 파일이있는 곳의 원래 코드를 여러 복사본으로 가져 오는 것입니다. 원본 .xlt를 수정하고 누군가 이전에 저장 한 .xls 파일에서 이전 매크로를 다시 실행하면 문제가 발생할 수 있습니다.

+0

.xlt 템플릿에 동의합니다. –

10

코드를 Excel Addin (XLA)로 옮기십시오 - 시작시로드됩니다 (% AppData % \ Microsoft \ Excel \ XLSTART 폴더에 있다고 가정 함). 그러나 통합 문서가 아닌 추가 기능 인 경우에는 매크로 및 정의 된 시작 기능이로드됩니다.

함수가 스프레드 시트 자체에 종속 된 경우 템플릿과 추가 기능의 조합을 사용할 수 있습니다. 나는이 같은 응용 프로그램의 일부를 배포하고 있습니다

, 우리는

워드, 엑셀, 파워 포인트 (XLA, PPA, DOT) 또한 오피스 2007 '리본'버전 (DOTM, XLAM 및 PPAM)에 대한 애드 인이 추가 기능 시작 코드가 없으면 도구 모음 단추를 만듭니다. 즉, 통합 문서/문서/등에서 도구 모음 단추를 누르면 코드가 실행됩니다 (두 개의 작업 단추와 설정 대화 상자를 표시하는 단추가 하나 있음)

템플릿은 실제로 VBA 코드로 이동하는 방법이 아닙니다. 추가 기능은 확실히 이동하는 방법입니다 ...

그래서 OAD 우리가 뭔가 같은 .. (도구 모음이 비록 존재하는지 확인 - 코드가 열릴 때마다 워크 시트에 대한 실행되지만 도구 모음은 사용자 세션에 대한 지속적인있다)를 사용하는 시작시 도구 모음

Public Sub Workbook_Open() 
    ' startup code/add toolbar/load saved settings, etc. 
End Sub 

희망을 그 도움 :)

1

나는 항상 Add-in (xla)/Template (xlt) 조합을 사용한다. 추가 기능은 메뉴 (또는 기타 UI 진입 점)를 만들고 필요에 따라 템플릿을로드합니다. 또한 데이터베이스에 저장하려는 데이터 (Access, SQLServer, 텍스트 파일 또는 xls 파일)를 작성합니다.

첫 번째 규칙은 코드를 데이터와 분리하여 보관하는 것입니다. 그런 다음 나중에 버그 수정이나 다른 코드 변경이있을 경우 새 추가 기능을 보내고 모든 서식 파일과 데이터베이스는 영향을받지 않습니다.

0

Excel 파일을 배포하는 ClickOnce를 보셨습니까?

+0

ClickOnce에 대해 자세히 알려주십시오. – JonnyGold

+0

여기에서 시작하십시오 : http://msdn.microsoft.com/en-us/library/bb821233.aspx –

0

엑셀을 읽기 전용 권한으로 네트워크 폴더에 저장하는 방법은 무엇입니까?통합 Windows 인증을 사용하여 인증을 수행 할 수 있으며 VBA의 데이터베이스에 연결 암호를 저장할 필요가 없습니다. 그런 다음이 위치에 대한 링크를 사용자에게 한 번만 배포하면됩니다. 업데이트를 수행하면 사용자가 알리지 않고 해당 폴더의 데이터 만 변경합니다.

관련 문제