Hallo Wolfgang,
z.B. so!
Dim WithEvents app As Application
Private Sub app_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Dim Pfad As String, Dateiname As String
Pfad = "C:\Users\Name\Documents\"
If Doc Is ThisDocument Then
If Doc.Sentences.Count > 0 Then
Dateiname = Doc.Sentences(1)
If Right(Dateiname, 1) = Chr(13) Then Dateiname = Left(Dateiname, Len(Dateiname) - 1)
Application.DisplayAlerts = wdAlertsNone
Doc.SaveAs Pfad & Dateiname & ".docx"
Application.DisplayAlerts = wdAlertsAll
Cancel = True
End If
End If
End Sub
Private Sub Document_Open()
Set app = Application
End Sub
Mit Document open weist du der Variablen app die Application Word zu. Die hat vielmehr Ereignisse als das Document selbst. z.B. das BeforeSave-Ereignis. Dann musst du nur noch den Pfad angeben und als ersten Satz den Dateinamen. Beachte dabei die Regeln für Dateinamen, z.B. darf der erste Satz kein ? enthalten. Wenn du jetzt auf Speichern oder Speichern-Unter klickst wird das Ereignis ausgeführt. Den Dateinamen kannst du mit den üblichen String-Funktionen. Left(), Right(), Mid() etc. noch bearbeiten und z.B. überflüssige Punkte rauslöschen. Hier hab ich z.B. das Zeilenumbruchzeichen chr(13) rausgenommen, da das ebenfalls zu einem Fehler beim Speichern geführt hat.
Wenn du weitere Fragen hast, einfach melden.
Gruß Mr. K.
|