Hallo Wissende,
völlig losgelöst von dieser Anfrage:und ob es da um Word geht,
http://computer.wer-weiss-was.de/office-software-all…
ich tippe auf nein, denn „erneut nachfragen“ ist mir sehr unbekannt, will ich jetzt was mit Word-Vba codieren.
Und zwar ein Makro was beim Öffnen einer Vorlage, .dot, automatisch startet.
Zu diesem Zweck habe ich der Normal.dot das Klassenmodul clsOpen hinzugefügt und anderen Code, steht alles nachfolgend unten. Zum Testen SOLL beim jetzigen Code bei jedem Öffnen einer .doc oder .dot deren FullName angezeigt werden.
Prinzipiell funktioniert mein Code wunderbar, so wie von mir geplant.
Mein Problem ist, leider nicht immer *fluch*
Vorgang A)
Ich starte Word 2000. Öffne eine .doc. so reagiert der Code wie gewünscht.
Vorgang B)
Ich starte Word 2000. Öffne eine .dot. so reagiert der Code nicht, die MsgBox kommt nicht
) Ändert sich auch nix dran wenn ich die .dot mehrmals schließe und wieder öffne.
ABER, sobald ich einmal eine .doc öffne, funktioniert der Code wieder gut.
So, das ist mein Rätsel zum Sonntag für euch *lächel* Jeder Tipp, Hilfe ist willkommen.
Gruß ^ Danke
Reinhard
Codes der Normal.dot
Modul: ThisDocument
Option Explicit
Private Sub Document_Open()
Set X.oApp = Word.Application
DoEvents
End Sub
Modul: Modul1
Option Explicit
Public X As New clsOpen
Klassenmodul: clsOpen
Option Explicit
Public WithEvents oApp As Word.Application
Private Sub oApp_DocumentOpen(ByVal Doc As Document)
MsgBox Doc.FullName
End Sub
Moin, Reinhard,
das Open-Ereignis des Dokuments wird nicht an die Vorlage durchgereicht, und im Open-Ereignis der Vorlage passiert nichts. Hilft Dir das weiter?
Gruß Ralf
ps: Was treibst Du da überhaupt? Verstehe nur Bahnhof
pps: Wie kommt das Klassenmodul an den Namen clsOpen? Bei mir heißt es nach dem Einfügen Klassenmodul1, ich finde keinen Weg, das umzubenennen.
Hallo Ralf,
das Open-Ereignis des Dokuments wird nicht an die Vorlage
durchgereicht, und im Open-Ereignis der Vorlage passiert
nichts. Hilft Dir das weiter?
leider nein. Da soll auch nix durchgereicht werden. Egal ob die Vorlage nun selbst Makros hat oder nicht, in ihren Modulen wird nichts gestartet oder abgeändert.
Das Open-Ereignis wird im Klassenmodul der Normal.dot erkannt und daraufhin soll der Code in der Normal.dot „loslaufen“.
Im Klassenmodul steht die Prozedur:
Private Sub oApp_DocumentOpen(ByVal Doc As Document)
Das ist mächtiger als die normale Open-Prozedur die ja nur reagiert wenn die doc in der sie steht geöffnet wird. Die Klassenmodul-Openprozedur soll bei JEDER .doc die geöffnet wird auslösen.
ps: Was treibst Du da überhaupt? Verstehe nur Bahnhof
Ich will durch Code in der Normal.dot ggfs. in jeder .doc die geöffnet wird etwas machen. Oder auch nicht, ich kann ja durch den Namen und/oder Ordner selektieren. Ein beispiel wäre z.B. in den Eigenschaften Datumseinträge zu aktualisieren o.ä.
pps: Wie kommt das Klassenmodul an den Namen clsOpen? Bei mir
heißt es nach dem Einfügen Klassenmodul1,
F4 (Eigenschaftsfenster)
Gruß
Reinhard