2011-03-17 2 views
1

UPDATE 3 :Visual Studio 도구는 VB6에게 휴식

이 내가는 VB6 스크립트, 가까운 단어를 저장 한 단어를 시작할 때 발생하는 다음 템플릿을 실행하면 것 일반적으로 실행 A와 템플릿, 즉 strTemplate 은 Normal.doc이됩니다. 그런 다음 최대한 빨리 이 변수 strTemplate에서 letter.doc을을 가진로 돌아갑니다 것을 다시 VSTO를 통해 저장되지 않은 원래 템플릿 이동 로 ...

업데이트 2 :

다음과 같이 내 시작 스크립트에서

, 나는 선을 가지고 :

Letter.dot라는 원래의 템플릿에서
strTemplate = ActiveDocument.AttachedTemplate 

, strTemplate = Letter.dot .

그러나 원래의 Letter.dot 템플릿을 기반으로 한 새로운 vsto 템플릿에서 위의 동일한 줄은 Normal.dot이되어 문제를 일으키며 새 템플릿의 이름이 Letter.dot .

나는

strAttTemplate = "Letter.dot" 

에서 수동으로 코드에 노력하고 스크립트가 다음 단계에 도달하지만, 그것은 뭔가에 대해 불평을 시작합니다.

내 질문에, 원래 템플릿을 strTemplate = Letter.dot 있지만 왜 strTemplate = Normal.dot vsto 통해 템플릿을 실행 한 후 변경합니까?

UPDATE 1 :

원래 비 VSTO 템플릿, 새로운 VSTO 템플릿 즉, 템플릿의 두 버전에 대한 디버그를 실행 한 후, 나는 원래 문서를하지 않는 것을 발견했다 속성이 있지만 vsto 템플릿에는 두 가지 문서 속성이 있습니다. 하지만 그건 문제가되지 않습니다.

문제는 vsto 템플릿과 관련이있는 것 같습니다. 원래 vsto 템플릿에는 normal.dot가 첨부되어 있지 않지만 normal.dot는 첨부되어 있습니다.

첨부 된 normal.dot을 새 템플릿에서 제거 할 수 있습니까?

원래의 질문 :

나는 Word 2003에서 템플릿 프로젝트를 만드는 비주얼 스튜디오 2008을 사용하고 있습니다. 백그라운드에서 이미 일부 vb6 매크로 스크립팅이있는 "기존 템플릿 사용"옵션을 선택합니다. 어떤 이유로 Visual Studio 프로젝트를 저장할 때 vb6 스크립팅이 작동을 멈 춥니 다.

이전 vb6 스크립트는 템플릿이 단어로 열릴 때 바로 실행되지만 추가 기능을 추가하지 않고 단순히 vs2008에서 템플릿을 사용하여 프로젝트를 저장하고 프로젝트를 빌드 할 때 단어로 템플릿을 열려고하면, 이전 시작 스크립트가 작동하지 않습니다.

왜 이런 일이 발생합니까?

+1

VBA가 VB6이 아닙니다. 잘못된 태그가 지정되었습니다. – Bob77

+0

어떤 코드가 실행되고 있지 않습니까? AUTORUN 매크로가 아닐 것입니다. 자동 실행 매크로가 특정 조건에서 Word에 의해 실행되지 않는 문제를 상기 한 것 같습니다. VS dev IDE에로드되는 것은 그 중 하나 일 수 있습니다. – DarinH

+0

원래 질문에서 ** 업데이트 1 : **를 참조하십시오. – oshirowanen

답변

2

Word 2003 .dot VBA에 AutoExec이라는 루틴이있을 가능성이 있습니다. VSTO 템플릿으로 배포 할 때 실행되는 추가 기능 Word 형식이 아니므로 AutoExec (STARTUP 폴더의 .wll 파일 또는 .dot 파일을 필요로 함)을 실행해야합니다. 이 문제를 해결하기 위해 VSTO를 사용하는 대신 AutoOpen을 사용하면 템플릿이 VSTO 추가 기능으로 열릴 때 해당 서브 루틴의 코드가 실행됩니다.

당신은 VBA에서이 세 가지 시도 할 수 있습니다 (Word에서 눌러 Alt 키 + F11는 Visual Basic 편집기에 도착합니다) :

Sub AutoNew() 
    MsgBox "AutoNew runs when creating a document from a template" 
End Sub 
Sub AutoOpen() 
    MsgBox "AutoOpen runs when opening a template as a document" 
End Sub 
Sub AutoExec() 
    MsgBox "AutoExec runs when loading an add-in (a global template)" 
End Sub 

다른 시나리오는 보안이없는 것입니다 설정을 "낮음"으로 설정하면 개발 컴퓨터의 Word 보안 설정에 적용됩니다. 당신은 (Ctrl + F5를 컴파일하고 실행하는 대신 F5)를 디버그 모드에서 VSTO를 실행할 때이 일반적으로 발생하여 업데이트 # 2에 관한


. 어떻게 운영하고 있는지 확인할 수 있습니까? 그 중 하나도 아닌 경우, 여전히 정상입니까? 테스트 컴퓨터에 배포 할 때?

마지막으로 전체 시작 스크립트를 게시 할 수 있다면 문제가 진정으로 거짓 일 수있는 위치를 파악하는 데 도움이됩니다.

+0

Doh. AutoExec 및 AutoOpen. 그게 내가 이라는 것을 의미합니다. 더 이상 그 물건을 거의 사용하지 마십시오. – DarinH

+0

@drventure : 불행히도 나는 아직도 그 세계에 갇혀있다. 또는 다행스럽게도 제가 현상금을 받으면 다행입니다. –

+0

AutoOpen을 AutoOpen으로 대체하려고 시도했지만 시작 스크립트, 심지어 VSTO가 아닌 템플릿까지 모든 템플릿이 중지되었습니다. 그래서 변경 사항을 되돌리고 이전 템플릿이 다시 작동하기 시작했습니다. – oshirowanen

0

2003 템플릿이 DOCX 또는 DOTX 파일을 만들 수 있고 DOCM 또는 DOTM 파일을 만들 수 있습니까? 2003 년 이후에는 DOCX 또는 DOTX 파일에 매크로 코드가 실행되지 않습니다.

+0

파일 확장자가 변경되지 않는 것 같습니다. 점이 파일을 생성하고 있지만 .dot의 확장을 표시하고 있습니까? – oshirowanen

+0

DOCX, DOTX는 2003 년 이후 얼마 지나지 않아 시작되었습니다. – oshirowanen

+0

이 답변이 왜 투표에 부쳐 졌는지 확실하지 않습니다. DOCX, DOTX, DOCM 및 DOTM은 이후 버전의 Office에서 저장할 최신 Zip 형식의 XML 형식 파일입니다. 나는 Office 2003에서 소개되었지만 2007 년에 주류가되었다고 생각한다. Office XP와 2000에 대한 addon 팩은 Office XP와 2000에서이 새로운 포맷을 읽고 쓸 수있게 해준다. DOC를 DOCX에 저장하면, 당신이 DOCX 파일을 저장하는 것과 같이 이상한 일을하지 않으면 수동으로 DOC로 이름을 바꿉니다. (그리고 전에 이런 일이 일어난 것을 본 적이 있습니다!) – DarinH

관련 문제