Verweise in allen Dokumenten eines Ordners löschen

Ein oft gehörter und leider auch vorkommender Fehler. Es werden Dokumente aufgrund von Vorlagen erstellt. Diese Vorlagen sidn für alle zugänglich auf einem Netzlaufwerk gespeichert. Nun werden die Server umbenannt oder neue Server angelegt und die Vorlagen verschoben. Fürt die neuen Dokumente spielt es keine Rolle. In den bisher gespeicherten Dokumenten wurden aber die Pfade zu den alten Vorlagen als Verweise mitgespeichert.

Nun dauert es sehr lange, bis die alten Dokumente geöffnet werden. Das liegt daran, dass Word versucht, die Vorlagen zu finden. Dies ist aber nicht möglich, da es die Vorlagen an diesem Ort nicht mehr gibt.

Da hilft nur eins: die Verweise müssen gelöscht werden. Das ist aber nur möglich, wenn man die Dokumente alle einzeln öffnet, die Verweise löscht, das Dokument speichert und wieder schließt.

 Hierzu gibt es ein Makro, das diese Vorgänge automatisch macht:

               
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
Sub Verweise_entfernen() 
    Dim anzdatei As Integer 
    Dim Pfad 
  
   Set fs = Application.FileSearch 
    
    'hier kann auch ein fester Pfad eingegeben werden
   Pfad = InputBox("Geben Sie den Pfad an", "Pfad") 
    
    'hier werden nur die insgesamt gefundenen Dateien ausgegeben
   If Pfad = "" Then 
       MsgBox "Kein Pfad eingegeben!" 
       Exit Sub 
   End If 
    
   If Dir(Pfad, vbDirectory) = "" Then 
       MsgBox "Pfad kann nicht gefunden werden!" 
       Exit Sub 
   End If 
    
   With fs 
       .NewSearch 
       .FileType = msoFileTypeWordDocuments    'Word-Dokumente!
       .LookIn = Pfad 
       .SearchSubFolders = True 
        'folgender Code wird nicht unbedingt gebraucht
       If .Execute = 0 Then 
           MsgBox "Es wurden keine Dateien." 
           Exit Sub 
       End If 
       anzdatei = .FoundFiles.Count 
   End With 
     
      
    ' Verweise in den einzelnen Dateien löschen
   On Error Resume Next 
    
   For j = 1 To anzdatei 
   WordBasic.DisableAutoMacros 1 
       If Err.Number <> 0 Then 
            
           Documents.Open fs.FoundFiles(j) 
                    
            'Verweis wird gelöscht
           With ActiveDocument 
               .UpdateStylesOnOpen = False 
               .AttachedTemplate = "" 
           End With 
            
            'Dokument wird gespeichert und geschlossen
           ActiveDocument.Save 
           ActiveDocument.Close 
       End If 
   Next j 
   WordBasic.DisableAutoMacros 0 
    
   MsgBox "Es wurden " & anzdatei & " Datei(en) neu gespeichert!" 

End Sub 


In Zeile16 bis 19 wird erstmal überprüft, ob es den angegebenen Pfad überhaupt gibt. In den Zeilen 21 bis 35 werden alle Dokuemnte aus dem Verzeichnis, und zwar wirklich nur die Dokumente, ausgelesen.

In Zeile 39 werden due Automatischen Makros ausgeschaltewt, damit beim Öffnen der Dokumente keine Makros ausgeführt werden.

Anschließend werden alle eingelesen Dokuemnte der Reihe nach geöffnet, die Verweise gelöscht, gespeichert und weider geschlossen.

Aber Vorsicht: die Ausführung des Codes kann bei sehr vielen Dokumenten erhebliche Zeit in Anspruch nehmen. Und immer vorher allen Dokumente sichern. Am besten immer vorher erstmal testen.

 



zurück zur Übersicht Verweise
Diese Seite zu Mister Wong hinzufügen
Diese Seite zu ecure.del.icio.us hinzufügen
Diese Seite zu webnews hinzufügen
Diese Seite zu Google Bookmarks hinzufügen
Diese Seite zu linkarena hinzufügen
Diese Seite zu Yahoo hinzufügen










Für weitere Infos bitte auf den Text klicken

http://www.prawi-officewelt.de
 .::. nach oben .::.
 
 
©2008 - 2024 www.VBA-Wordwelt.de - alle Rechte vorbehalten
 
Kontakt | Impressum
los Suche

Cookies speichern Informationen lokal auf Ihrem Rechner, ohne die Verwendung kann der Funktionsumfang beeinträchtigt werden. Weitere Informationen


Annehmen