Beschreibung
Beim Aktualisieren von Dokumenten werden häufig fehlerhafte Verweisquellen übersehen. Um dies zu verhindern, habe ich die folgende Funktion geschrieben. Die Funktion dient als Input für die Funktion Dokument aktualisieren. Vorher definierte Fehlertexte werden gesucht und bei auffinden eines dieser Texte wird True zurückgegeben, andernfalls False.
Das Makro ist in VB.NET geschrieben, kann aber leicht in VBA portiert werden. Bei Fragen einfach die Kommentarfunktion benutzen.
Sourcecode
' Verweisquellen-Fehlermeldungen
Public Const REF_ERROR1 As String = "Fehler! Verweisquelle konnte nicht gefunden werden."
Public Const REF_ERROR2 As String = "Fehler! Textmarke nicht definiert."
Public Const REF_ERROR3 As String = "Fehler! Kein gültiger Dateiname."
Public Const REF_ERROR4 As String = "Fehler! Unbekannter Name für Dokument-Eigenschaft."
' Kapitel 0-Verweisquellen
Public Const CHAPTER0_1 As String = "section 0"
Public Const CHAPTER0_2 As String = "chapter 0"
Public Const CHAPTER0_3 As String = "abschnitt 0"
Public Const CHAPTER0_4 As String = "kapitel 0"
' Word-Objekt
Public objWord As Microsoft.Office.Interop.Word.Application = Globals.Ribbon_Class.Application
' Nach fehlerhaften Verweisquellen im Text suchen
Public Function findFehlerhafteVerweisquellen()
Dim sSearchString As String
Dim ireftype As Integer
findFehlerhafteVerweisquellen = False
With objWord.Selection
For ireftype = 1 To 8
Select Case ireftype
Case 1: sSearchString = REF_ERROR1
Case 2: sSearchString = REF_ERROR2
Case 3: sSearchString = REF_ERROR3
Case 4: sSearchString = REF_ERROR4
Case 5: sSearchString = CHAPTER0_1
Case 6: sSearchString = CHAPTER0_2
Case 7: sSearchString = CHAPTER0_3
Case 8: sSearchString = CHAPTER0_4
Case Else: sSearchString = ""
End Select
With .Find
.Text = sSearchString
.Execute()
If .Found Then
findFehlerhafteVerweisquellen = True
Exit For
Else
findFehlerhafteVerweisquellen = False
End If
End With
Next ireftype
End With
End Function