Tipp 0033 Automatisches Starten von Makros
Autor/Einsender:
Datum:
  Angie
24.05.2005 (Update)
Entwicklungsumgebung:   Word 97
Es gibt immer wieder Situationen, in denen Sie eine bestimmte Aktion ausführen wollen, z. B. wenn Sie ein vorhandenes Dokument öffnen oder schließen oder ein neues Dokument erstellen. Word stellt für bestimmte Ereignisse sowohl die sogenannten Auto-Makros als auch die Ereignisse des Document-Objekts und die Ereignisse des Application-Objekts bereit.
Wenn Sie beispielsweise beim Öffnen eines Dokuments etwas ausführen lassen möchten, dann stehen Ihnen das AutoOpen-Makro und das Document_Open-Ereignis zur Verfügung. Welchen Gültigkeitsbereich die Auto-Makros und Ereignisse haben, kann den oben genannten Tipps entnommen werden.
In diesem Beispiel wurden zur Demo die Auto-Makros AutoNew und AutoOpen in einer Dokumentvorlage (*.dot) gespeichert.
AutoNew-Makro
Wird ein neues Dokument auf Basis der Dokumentvorlage (*.dot) erstellt (Menü Datei/Neu...), wird das AutoNew-Makro automatisch ausgeführt und Sie werden zum Speichern des Dokuments aufgefordert.
AutoOpen-Makro
Hier wird beim Öffnen (Menü Datei/Öffnen...) der Dokumentvorlage (*.dot) oder eines Dokuments (*.doc) basierend auf der Vorlage, ein Log-Eintrag mit Dateinamen, Benutzernamen, Datum und Uhrzeit am Ende einer Textdatei angehängt. Sollte die Log-Datei noch nicht existieren, wird diese erstellt.
 
Option Explicit

Sub AutoNew()
  Const cTitle As String = "VB-fun-Demo - AutoNew-Makro"

  Dim nRetVal  As Long
  
  nRetVal = MsgBox("Dieses Dokument wurde noch nicht " & _
        gespeichert !" & vbCr & "Möchten Sie dies jetzt tun ?", _
        vbYesNo + vbQuestion + vbDefaultButton1, cTitle)

  If nRetVal = vbYes Then
    ChangeFileOpenDirectory ActiveDocument.AttachedTemplate.Path
    Application.Dialogs(wdDialogFileSaveAs).Show
  End If
End Sub


Sub AutoOpen()
  Const cTitle    As String = "VB-fun-Demo - AutoOpen-Makro"
  Const cLogFile  As String = "Beispiel.log"

  Dim strFileName As String
  Dim strMsg      As String
  Dim FN          As Integer

  strFileName = ThisDocument.Path & "\" & cLogFile

  strMsg = ActiveDocument.FullName & vbCrLf & _
        "wurde geöffnet von " & Application.UserName & _
        " am " & CStr(Date) & " um " & CStr(Time)

  FN = FreeFile()
  On Error Resume Next
  Open strFileName For Append As #FN
    Print #FN, strMsg
  Close #FN

  If Err.Number = 0 Then
      MsgBox "Die Textdatei " & cLogFile & " wurde ergänzt !", _
            vbInformation, cTitle
  End If
  On Error GoTo 0
End Sub
 
Weitere Links zum Thema
Auto-Makros
Ereignisse des Application-Objekts
Ereignisse des Document-Objekts

Windows-Version
95
98/SE
ME
NT
2000
XP
Vista
Win 7
Word-Version
95
97
2000
2002 (XP)
2003
2007
2010


Download  (8,3 kB) Downloads bisher: [ 1610 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Dienstag, 30 August 2011