Compilazione di parole con errori di ortografia da documenti (Microsoft Word)
Robert ha una cartella che contiene molti documenti. Vorrebbe un modo per estrarre tutte le parole con errori di ortografia dai documenti e inserire quelle parole in un nuovo documento.
Fortunatamente, Word rende ciò relativamente semplice tramite l’uso di una macro.
Questo perché gli errori di ortografia sono accessibili in VBA esaminando la raccolta .SpellingError. Ogni elemento in questa raccolta speciale rappresenta un errore di ortografia nel documento.
Con questo in mente, la seguente macro mostra come riunire tutti gli errori di ortografia da ogni documento in una cartella.
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
La macro utilizza il comando Dir per trovare tutti i file nella cartella specificata (variabile vDirectory) che terminano con una variante di “doc”. Ciascuno di questi file viene caricato in Word, a sua volta. Durante il caricamento, la raccolta .SpellingErrors viene controllata per verificare se contiene errori. In caso affermativo, il testo delle parole scritte in modo errato viene aggiunto alla raccolta di cWords. In caso contrario, il nome del file viene aggiunto alla raccolta cDocs.
Non c’è niente di speciale nelle raccolte cWords o cDocs; sono stati creati semplicemente per contenere tutti gli errori di ortografia e i nomi dei file rilevati durante l’esame dei file. La macro avrebbe potuto utilizzare altrettanto facilmente array di variabili al posto delle raccolte.
Ci sono un paio di cose da tenere a mente quando si esegue questa macro.
Innanzitutto, l’esecuzione può richiedere un po ‘di tempo, a seconda del numero di documenti nella cartella e della lunghezza di ciascuno di questi documenti. Quando ho eseguito la macro, l’ho fatto su una cartella che conteneva 9 documenti con una media di circa 97 pagine per documento. Ci sono voluti poco meno di 8 minuti per completare l’esecuzione della macro e mentre era in esecuzione non ho potuto fare nient’altro in Word. (In effetti, potresti facilmente chiederti se il tuo sistema è “bloccato”.)
Un’altra cosa da tenere a mente è che l’output può essere piuttosto lungo e sembrare piuttosto ridondante. Questo perché le parole con errori di ortografia possono comparire più volte nella raccolta .SpellingErrors. Ad esempio, supponiamo di avere un documento che contiene la parola “Cftype”, che è ovviamente contrassegnata come errata. Se la parola viene utilizzata 30 volte nel documento, verrà contrassegnata 30 volte e quindi finirà 30 volte nell’elenco degli errori di ortografia. Sebbene esuli dallo scopo di questo suggerimento, è possibile modificare la macro per verificare se una parola è stata precedentemente contrassegnata come errata e quindi aggiungerla solo se si tratta di un errore ortografico unico.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13488) si applica a Microsoft Word 2007, 2010, 2013 e 2016.