Frage

Update 3:

Dies geschieht, wenn ich das VB6 -Skript gespeichert habe, das Wort schließen, wörst, und dann die Vorlage ausführen, wie Sie normalerweise eine Vorlage ausführen würden, dh Strtemplate wird normal.doc. Sobald ich zu der ursprünglichen Vorlage zurückkehre, die nicht über VSTO gespeichert wurde, geht das auf den Buchstaben in der variablen Strtemplate zurück ...

Update 2:

In meinem Start -Skript habe ich eine Zeile wie folgt:

strTemplate = ActiveDocument.AttachedTemplate

In der ursprünglichen Vorlage, die als letter.dot bezeichnet wird, strtemplate = letter.dot.

Aus irgendeinem Grund wird in der neuen VSTO -Vorlage, die auf dem ursprünglichen Buchstaben basiert.

Ich habe versucht, manuell zu codieren

strAttTemplate = "Letter.dot"

Und das Drehbuch kommt in die nächste Stufe, aber dann beschwert es sich über etwas anderes.

Meine Frage ist also, dass die ursprüngliche Vorlage Strtemplate = letter.dot hat, aber warum ändert sich diese Änderung zu Strtemplate = normal.dot nach dem Ausführen der Vorlage über VSTO?

Update 1:

Nachdem ich ein Debugg für beide Versionen der Vorlage, dh die ursprüngliche Nicht -VSTO -Vorlage und die neue VSto -Vorlage ausgeführt habe, habe ich herausgefunden, dass das Original keine Dokumenteneigenschaften hat, die VSTO -Vorlage jedoch 2 Dokumenteigenschaften hat. Aber das scheint kein Problem zu sein.

Es scheint, dass das Problem etwas mit der VSTO -Vorlage zu tun hat.

Ist es möglich, beigefügte Normale aus der neuen Vorlage zu entfernen?

Originalfrage:

Ich verwende Visual Studio 2008, um ein Word 2003 -Vorlagenprojekt zu erstellen. Ich wähle die Option "Vorhandene Vorlage verwenden" aus, die bereits im Hintergrund VB6 -Makro -Skripten enthält. Wenn ich das Visual Studio -Projekt speichere, hört das VB6 -Skripten, wenn ich das Visual Studio -Projekt speichere, nicht mehr funktioniert.

Das alte VB6 -Skript wird sofort ausgeführt, wenn sich die Vorlage in Wort öffnet, aber wenn ich einfach die Vorlage in VS2008 verwende, ohne zusätzliche Funktionen hinzuzufügen, das Projekt speichern und das Projekt erstellen, wenn ich versuche, die Vorlage in Word, das alte Start -Skript, zu öffnen funktioniert nicht.

Warum passiert das?

War es hilfreich?

Lösung

Das wahrscheinliche Szenario ist, dass Sie eine Routine genannt haben AutoExec In deinem Wort 2003 .dot vba. Dies wird nicht ausgeführt, wenn sie als VSTO-Vorlage bereitgestellt werden AutoExec (Es erwartet entweder .WLL -Dateien oder .Dot -Dateien in Ihrem Startordner). Der Weg für VSTO ist die Verwendung AutoOpen Stattdessen wird der Code in dieser Subroutine ausgeführt, wenn die Vorlage als VSTO-Add-In geöffnet wird.

Sie können diese drei in VBA ausprobieren (in Wort, drücken Sie Alt + F11 Um zum visuellen Basis -Editor zu gelangen):

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

Das andere Szenario ist, dass Sie Ihre Sicherheitseinstellungen nicht auf "niedrig" in den Word -Sicherheitseinstellungen Ihrer Entwicklungsmaschine einstellen lassen.


In Bezug auf Ihr Update Nr. 2 geschieht dies normalerweise, wenn Sie VSTO im Debug -Modus ausführen (F5, anstatt es zu kompilieren und Strg + F5 auszuführen). Können Sie bestätigen, wie Sie es ausführen? Wenn es keines davon ist, ist es dann immer noch normal.

Wenn Sie Ihr volles Start -up -Skript veröffentlichen könnten, wäre dies hilfreich, um festzustellen, wo das Problem wirklich lügen kann.

Andere Tipps

Ist es möglich, dass die 2003 -Vorlage eine DOCX- oder eine DOTX -Datei erstellt und keine DOCM- oder DOTM -Datei? Mit 2003 und später wird der Makrocode nicht ausgeführt, wenn er in einer DOCX- oder DOTX -Datei befindet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top