|
Guten Abend,
Also wenn du wirklich das Speichern unter falschem Namen verhindern willst, dann würde ich nicht den vorgeschlagenen in Word integrierten Dialog nutzen, sondern den msoFiledialog. Word hat leider im gegensatz zu Excel keine getSaveAsFilename-Methode. Eine solche kannst du dir aber ganz leicht bauen.
In ein neues Klassenmodul mit z.B. dem Namen appEvents kommt folgender Code:
Public WithEvents app As Application
Private Sub app_DocumentBeforeSave(ByVal Doc As Document, SaveAsUI As Boolean, Cancel As Boolean)
Dim Filename As String
If Doc.Name = ThisDocument.Name And SaveAsUI Then
Filename = getSaveAsFilename
If Filename Like "*FalscherName*" Then
MsgBox "Der Name " & Filename & " ist ungültig. Datei wurde nicht gespeichert.", vbCritical
ElseIf Filename = "" Then
MsgBox "Es wurde kein Name eingegeben. Datei wurde nicht gespeichert.", vbCritical
Else
Doc.SaveAs2 Filename
End If
Cancel = True
End If
End Sub
Private Function getSaveAsFilename() As String
Dim SaveAsFileDlg As FileDialog
Set SaveAsFileDlg = Application.FileDialog(FileDialogType:=msoFileDialogSaveAs)
If SaveAsFileDlg.Show = -1 Then getSaveAsFilename = SaveAsFileDlg.SelectedItems(1)
End Function
Anschließend kommt noch in das Modul "ThisDocument" der Vierzeiler:
Dim myApp As New appEvents
Private Sub Document_Open()
Set myApp.app = Application
End Sub
Wenn du die Datei nun als docm speicherst, schließt und neu öffnest sollte das Ganze funktionieren.
Gruß Mr. K.
|