Wie man ungültige Verweise aus Worddokumenten manuell über den VBA Editor entfernt, hatte ich hier bereits beschrieben. Das folgendem Script löscht ebenfalls ungültige Verweise. Das Script kann zum Beispiel als Button in die Multifunktionsleiste eingebunden werden.
Durch ungültige Verweise kann es zum Beispiel vorkommen, das Worddokumente nicht mehr gespeichert werden können.
VBProject Object
Über das VBProject Object bekommt man Zugriff auf die Eigenschaft References. Dort kann über die Methode Remove ein ungültiger Verweis gelöscht werden.
Voraussetzung ist der Zugriff auf das VBA-Projektobjektmodell.
Zugriff auf das VBA-Projektobjektmodell
Wie man Zugriff auf das VBA-Projektobjektmodell bekommt beschreibe ich am Beispiel von Office 2007.
- Office Button anklicken
- Word-Optionen auswählen
- das Vertrausensstellungscenter auswählen
- Einstellungen für das Vertrausensstellungscenter anklicken
- In der linken Spalte Einstellungen für Makros auswählen
- Zugriff durch setzen des Haken aktivieren
Das Makro – Verweis entfernen / References remove
Mit dem folgenden Makro kann nun geprüft werden, ob es ungültige Verweise in einem Worddokument gibt.
'--------------------------------------------------------------------------------------- ' Procedure : modTools.FixInvalidReferences ' Author : AF-Network.de ' Date : 27.03.2014 ' Purpose : Löscht ungültige Verweise aus einem Worddokument '--------------------------------------------------------------------------------------- Public Sub FixInvalidReferences() Dim oTemp As Object Dim i As Integer 'Fehlerspeicher löschen Err.Clear i = 0 On Error GoTo Error For Each oTemp In ActiveDocument.VBProject.References If oTemp.isbroken = True Then ActiveDocument.VBProject.References.Remove oTemp i = i + 1 End If Next GoTo Ende Error: If Err.Number = 6068 Then MsgBox "Bitte aktivieren Sie folgende Word Einstellung:" & vbCrLf & _ "1. Klicken Sie auf den 'Office Button'." & vbCrLf & _ "2. Wählen Sie die 'Word-Optionen', unten rechts aus." & vbCrLf & _ "3. Links das 'Vertrausensstellungscenter' anklicken." & vbCrLf & _ "4. Rechts den Button 'Einstellungen für das Vertrausensstellungscenter' anklicken." & vbCrLf & _ "5. Links 'Einstellungen für Makros' auswählen." & vbCrLf & _ "6. Aktivieren von 'Zugriff auf das VBA-Projektobjektmodell vertrauen'" & vbCrLf & vbCrLf, vbOKOnly, Err.Description Else MsgBox Err.Description, vbCritical, Err.Number End If Ende: If i > 0 Then MsgBox i & " Einträge wurden entfernt.", vbOKOnly, "Ergebnis" End If End Sub