質問

更新3:

これは、VB6スクリプトを保存し、単語を閉じ、ワードを開始し、テンプレートを通常テンプレートを実行するときに実行したときに発生します。その後、VSTOを通じて保存されていない元のテンプレートに戻るとすぐに、可変ストレートに文字を持つことに戻ります...

更新2:

スタートアップスクリプトには、次のような行があります。

strTemplate = ActiveDocument.AttachedTemplate

Letter.dot、strtemplate = lette.dotという名前の元のテンプレートで。

しかし、何らかの理由で、元のletter.dotテンプレートに基づいた新しいVSTOテンプレートでは、上記の同じ行が普通になります。これは問題を引き起こしているため、新しいテンプレートはまだretter.dotという名前であると考えました。

手動でコーディングしようとしました

strAttTemplate = "Letter.dot"

そして、スクリプトは次の段階に到達しますが、それは何か他のことについて不平を言っています。

私の質問は、元のテンプレートにはstrtemplate = letter.dotがありますが、なぜVSTOを介してテンプレートを実行した後にstrtemplate = normor.dotに変更するのですか?

更新1:

テンプレートの両方のバージョン、つまり元の非VSTOテンプレートと新しいVSTOテンプレートのデバッグを実行した後、オリジナルにはドキュメントプロパティがないが、VSTOテンプレートには2つのドキュメントプロパティがあることがわかりました。しかし、それは問題ではないようです。

問題はVSTOテンプレートと関係があるように思われますが、それに添付されていますが、元の非VSTOテンプレートには正常なものがありません。

新しいテンプレートから添付のnormal.dotを削除することは可能ですか?

元の質問:

Visual Studio 2008を使用して、Word 2003テンプレートプロジェクトを作成しています。バックグラウンドにVB6マクロスクリプトが既にある「既存のテンプレートを使用」オプションを選択します。何らかの理由で、Visual Studioプロジェクトを保存すると、VB6スクリプトが機能しなくなります。

古いVB6スクリプトは、テンプレートがWordで開くとすぐに実行されますが、追加機能を追加してプロジェクトを保存してプロジェクトを構築せずにVS2008でテンプレートを使用するだけで、Wordでテンプレートを開き、古いスタートアップスクリプトを開こうとすると動作しません。

なぜこうなった?

役に立ちましたか?

解決

おそらくシナリオは、あなたが呼ばれるルーチンを持っていることです AutoExec あなたの言葉2003 .DOT VBA。これは、VSTOテンプレートとして展開したときに実行されません。 AutoExec (Startupフォルダー内の.wllファイルまたは.dotファイルのいずれかが期待されます)。 VSTOのこれを回避する方法は使用することです AutoOpen 代わりに、テンプレートがVSTOアドインとして開かれたときに、そのサブルーチンでコードを実行します。

これら3つをVBAで試すことができます(Word、Press alt + F11 Visual Basic Editorに到達するには):

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セキュリティ設定で「低」に設定されているセキュリティ設定がないことです。


更新#2に関しては、これは通常、DEBUGモードでVSTOを実行したときに発生します(CTRL + F5をコンパイルして実行する代わりにF5)。実行する方法を確認できますか?それらのいずれかでない場合、テストマシンに展開するときはまだ正常ですか?

最後に、完全なスタートアップスクリプトを投稿できれば、それは問題が本当にどこにあるかを判断するのに役立ちます。

他のヒント

2003年のテンプレートがDOCXまたはDOTXファイルを作成している可能性はあり、DOCMまたはDOTMファイルではありませんか? 2003年以降、Macro Codeがdocxまたはdotxファイルにある場合、マクロコードは実行されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top