Sicherheitskopien an beliebigem Ort speichern (AddIn) |
|
|||||||||||||||||||||
Wie im Artikel Sicherungskopie erstellen beschrieben, legt Word, sofern die Option Sicherungskopie erstellen in den Speichern-Optionen verwendet wird, beim Speichern automatisch eine Kopie des letzten Dokumentstandes vor dem Speichern im selben Verzeichnis an. Mit den in dem Artikel vorgestellten Makros lassen sich Sicherungskopien von den Dateien an beliebigem Ort sichern. Mit diesem AddIn erübrigt sich das manuelle Erstellen der Symbole, da das AddIn - wenn es z.B. in den Startup-Ordner von Word kopiert wird - diese automatisch bereit stellt. Als zusätzliche Erweiterung klinkt sich das AddIn in die Menübefehle Datei speichern und Datei speichern unter ein. Wenn Ihr zusätzlich die Tasten <Strg>+<Shift> drückt, wird eine Sicherungskopie im eingestellten Backup-Ordner erstellt. Damit sich das Makro nur bei diesen beiden Tasten in den jeweiligen Menübefehl einklinkt, muss trotzdem der entsprechende Befehl abgefangen werden. Mit Hilfe des APIs GetKeyState werden die Tasten <Strg> und <Shift> auf Tastendruck geprüft: Function funcIsTasteGedrückt(iTastenCode As Integer) As Boolean ' Überprüft Bit-weise, ob eine Taste gedrückt ist Debug.Print GetKeyState(iTastenCode) If (GetKeyState(iTastenCode) And &HF000&) = &HF000& Then funcIsTasteGedrückt = True End If End Function Wenn die Taste gedrückt wurde, wird ein True zurückgeliefert. In den abgefangenen Menübefehlen wird dann unterschieden, ob der normale hinterlegte Befehl ausgeführt wird, oder ob ein Datei-Backup erstellt wird. Wichtig Die nachfolgende Funktion fängt z.B. den Menüpunkt Datei speichern unter ab: Sub DateiSpeichernUnter() ' wird die Strg/Control-Taste beim Anklicken des Menüs "DateiSpeichernUnter" ' gedrückt gehalten, wird ein Backup der Datei im BackUp-Ordner angelegt Dim strFile As String Dim strPath As String Dim oDoc As Document On Error GoTo DateiSpeichernUnter_Error Set oDoc = ActiveDocument Dim strFolder As String Dim ret As Single If Documents.Count = 0 Then Exit Sub If funcIsTasteGedrückt(VK_CONTROL) = False Or funcIsTasteGedrückt(VK_SHIFT) = False Then Dialogs(wdDialogFileSaveAs).Show Else ' Ordner auslesen strFolder = fkt_ReadRegEntry 'CommandBars("Standard").FindControl(msoControlButton,1,"BrowseFolder").Caption MsgBox "Es wird ein Datei-Backup im folgenden Ordner erstellt:" & vbCrLf & strFolder, _ vbInformation, c_Title With Dialogs(wdDialogFileSaveAs) ret = .Show ' Name und Pfad der Datei auslesen strFile = .Name strPath = CurDir If ret = -1 Then fkt_SaveBackType strFolder, strFile, oDoc ' eigentliche Datei im ausgewählten Ordner/Namen speichern Select Case oDoc.Type Case wdTypeDocument oDoc.SaveAs strPath & "\" & strFile, wdFormatDocument Case wdTypeTemplate oDoc.SaveAs strPath & "\" & strFile, wdFormatTemplate End Select End If End With End If On Error GoTo 0 Exit Sub DateiSpeichernUnter_Error: MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure " & _ "DateiSpeichernUnter of Modul SpeichernBak" End Sub |
www.chf-online.de/vba/vbpspeichernunter2.htm | © 2001-11 Christian Freßdorf (Zaphod-Systems) |