Robert hat einen Ordner mit vielen Dokumenten. Er möchte eine Möglichkeit, alle falsch geschriebenen Wörter aus den Dokumenten zu ziehen und diese Wörter in ein neues Dokument einzufügen.

Glücklicherweise macht Word dies durch die Verwendung eines Makros relativ einfach.

Dies liegt daran, dass auf die Rechtschreibfehler in VBA zugegriffen werden kann, indem die .SpellingError-Auflistung untersucht wird. Jedes Element in dieser speziellen Sammlung stellt einen Rechtschreibfehler im Dokument dar.

In diesem Sinne zeigt das folgende Makro, wie alle Rechtschreibfehler aus jedem Dokument in einem Ordner zusammengeführt werden.

Sub CheckFolderForSpellErrors()

'Copy all misspelled words in each document     'from one directory to a new document.

'Also lists all documents that have no spelling errors

Dim cWords As New Collection     Dim cDocs As New Collection     Dim vItem As Variant     Dim rng As Range     Dim docSourse As Document     Dim docNew As Document     Dim vDirectory As String     Dim vFile As String     Dim bNoSpellingErrors As Boolean

Application.ScreenUpdating = False

vDirectory = "C:\MyFolder\"           ' Path to check

' Find first file to check     vFile = Dir(vDirectory & ".doc")



Do While vFile <> ""

Documents.Open FileName:=vDirectory & vFile         Set docSource = ActiveDocument

If docSource.SpellingErrors.Count > 0 Then             cWords.Add Item:="Spelling errors found in " & vFile & vbCrLf

' add each word to the collection             For Each rng In docSource.SpellingErrors                 cWords.Add Item:=rng.Text & vbCrLf             Next         Else ' doc has no spelling errors             bNoSpellingErrors = True             cDocs.Add vFile & vbCrLf         End If

ActiveDocument.Close (wdDoNotSaveChanges)

vFile = Dir     Loop

Set docNew = Documents.Add

For Each vItem In cWords         Selection.TypeText vItem     Next

If bNoSpellingErrors Then         Selection.TypeText "These documents have no spelling errors." & vbCrLf

For Each vItem In cDocs             Selection.TypeText vItem & vbCrLf         Next     End If

Application.ScreenUpdating = True End Sub

Das Makro verwendet den Befehl Dir, um alle Dateien im angegebenen Ordner (vDirectory-Variable) zu finden, die in einer Variante von „doc“ enden. Jede dieser Dateien wird nacheinander in Word geladen. Während des Ladens wird die .SpellingErrors-Auflistung überprüft, um festzustellen, ob sie Fehler enthält. Wenn dies der Fall ist, wird der Text der falsch geschriebenen Wörter zur cWords-Sammlung hinzugefügt. Ist dies nicht der Fall, wird der Dateiname zur cDocs-Auflistung hinzugefügt.

Weder die cWords- noch die cDocs-Sammlungen haben etwas Besonderes. Sie wurden einfach erstellt, um Rechtschreibfehler und Dateinamen zu speichern, die beim Untersuchen der Dateien entdeckt wurden. Das Makro hätte genauso gut variable Arrays anstelle der Sammlungen verwenden können.

Beim Ausführen dieses Makros sind einige Dinge zu beachten.

Erstens kann die Ausführung eine Weile dauern, abhängig von der Anzahl der Dokumente im Ordner und der Länge jedes dieser Dokumente. Als ich das Makro ausführte, tat ich dies in einem Ordner, der 9 Dokumente enthielt, die durchschnittlich 97 Seiten pro Dokument enthielten. Es dauerte knapp 8 Minuten, bis das Makro vollständig ausgeführt wurde, und während es ausgeführt wurde, konnte ich in Word nichts anderes tun. (Tatsächlich könnten Sie sich leicht fragen, ob Ihr System „hängen geblieben“ ist.)

Eine andere Sache zu beachten ist, dass die Ausgabe ziemlich lang sein kann und ziemlich redundant erscheint. Dies liegt daran, dass falsch geschriebene Wörter in der .SpellingErrors-Auflistung mehrmals vorkommen können. Angenommen, Sie haben ein Dokument, das das Wort „Cftype“ enthält, das offensichtlich als falsch geschrieben gekennzeichnet ist. Wenn das Wort 30 Mal im Dokument verwendet wird, wird es 30 Mal markiert und landet daher 30 Mal in der Liste der Rechtschreibfehler. Obwohl dies den Rahmen dieses Tipps sprengt, können Sie das Makro ändern, um zu überprüfen, ob ein Wort zuvor als falsch geschrieben markiert wurde, und es dann nur hinzufügen, wenn es sich um eine eindeutige Rechtschreibfehler handelt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (13488) gilt für Microsoft Word 2007, 2010, 2013 und 2016.