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.