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-Key: 151458

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

Printed on: April 25, 2024 at 05:04 o'clock

Mitglied: 76109
76109 Sep 21, 2010 at 14:25:39 (UTC)
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
Member: joni2000de
joni2000de Sep 21, 2010 at 17:19:00 (UTC)
Goto Top
Hallo Dieter,

hat funktioniert, danke!

Gruß Joni
Member: Ueba3ba
Ueba3ba Jun 12, 2023 at 12:04:12 (UTC)
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??