Kompilieren falsch geschriebener Wörter aus Dokumenten (Microsoft Word)
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.