joni2000de
Goto Top

Word Makro vor Ausdruck ausführen

Hallo Admins,

gibt es eine Möglichkeit ein Makro in einen Worddokument auszuführen bevor das Dokument ausgedruckt wird?

Unter Excel soll das anscheinend mit BeforePrint funktionieren. Doch bei Word klappt das bei mir nicht.

Bin für jeden Tipp dankbar.

Gruß Joni

Content-ID: 151458

Url: https://administrator.de/contentid/151458

Ausgedruckt am: 22.11.2024 um 14:11 Uhr

76109
76109 21.09.2010 um 16:25:39 Uhr
Goto Top
Hallo Joni!

In Word funktioniert das auch, nur etwas anders als z.B. in Excel.

Führe folgende Schritte aus:

Schritt 1: VB-Editor öffnen und in <Project(Dateiname)><ThisDocument> diesen Code einfügen (Registrierung der Ereignisprozedur):
Dim RegistryEventHandler As New EventClassModule

Private Sub Document_Open()
    Set RegistryEventHandler.AppWord = Word.Application
End Sub
Schritt 2: <ThisDocument><Rechte Maustaste> <Einfügen Klassenmodul>

Schritt 3: <Klassenmodul (Name)> "Klasse1" ändern nach "EventClassModule"

Schritt 4: <Klassenmodul (EventClassModule) diesen Code einfügen:
Public WithEvents AppWord As Word.Application

Private Sub AppWord_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)
    MsgBox "Der Druckvorgang für das Dokument " & Doc & " wird abgebrochen!"  
    Cancel = True
End Sub
Schritt 5: <Debug><kompiliern von Project><Speichern>

Schritt 6: Dokument schließen und wieder öffnen oder im Klassenmodul ThisDocument die Subroutine "Document_Open manuell starten (Event-Registrierung ausführen)

Nach Erledigung der einzelnen Schritte, sollte Dir beim starten eines Druckvorgangs zu Testzwecken eine Meldung ausgegeben werden, wobei der Druckvorgang per Cancel= True abgebrochen wird.

Gruß Dieter
joni2000de
joni2000de 21.09.2010 um 19:19:00 Uhr
Goto Top
Hallo Dieter,

hat funktioniert, danke!

Gruß Joni
Ueba3ba
Ueba3ba 12.06.2023 um 14:04:12 Uhr
Goto Top
Ich belebe diesen Beitrag mal.

Ich habe in meinem Word Dokument ein MAKRO dass mir fortlaufend eine Nummer generiert.

Private Sub Document_New()

End Sub

Private Sub Document_Open()
Order = System.PrivateProfileString("J:\Settings.txt", _  
        "MacroSettings", "Order")  
    If Order = "" Then  
        Order = 1
    Else
        Order = Order + 1
    End If
System.PrivateProfileString("J:\Settings.txt", "MacroSettings", _  
        "Order") = Order  
ActiveDocument.Bookmarks("Order").Range.InsertBefore Format(Order, "00#")  
ActiveDocument.SaveAs FileName:="path" & Format(Order, "00#")  

End Sub

Wie kann ich erreichen dass diese Nummer auch beim Drucken fortlaufend generiert wird?

Sagen wir die Nummer steht aktuell bei 002.
Jetzt öffne ich das Dokument und möchte es 10mal ausdrucken.

Wie erreiche ich nun, dass die Nummer auf allen Ausdrucken sich ändert??