Robert tiene una carpeta que contiene muchos documentos. Le gustaría encontrar una forma de extraer todas las palabras mal escritas de los documentos y colocar esas palabras en un nuevo documento.

Afortunadamente, Word lo hace relativamente fácil mediante el uso de una macro.

Esto se debe a que se puede acceder a los errores ortográficos en VBA examinando la colección .SpellingError. Cada elemento de esta colección especial representa un error ortográfico en el documento.

Teniendo esto en cuenta, la siguiente macro muestra cómo reunir todos los errores ortográficos de cada documento en una carpeta.

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 usa el comando Dir para buscar cualquier archivo en la carpeta especificada (variable vDirectory) que termine en alguna variante de «doc». Cada uno de estos archivos se carga en Word, a su vez. Mientras está cargada, la colección .SpellingErrors se verifica para ver si contiene algún error. Si es así, el texto de las palabras incorrectamente escritas se agrega a la colección de cWords. Si no es así, el nombre del archivo se agrega a la colección cDocs.

No hay nada especial en las colecciones de cWords o cDocs; se crearon simplemente para contener los errores ortográficos y los nombres de archivo que se descubrieron al examinar los archivos. La macro podría haber utilizado fácilmente matrices de variables en lugar de las colecciones.

Hay un par de cosas a tener en cuenta al ejecutar esta macro.

Primero, la ejecución puede llevar bastante tiempo, dependiendo de la cantidad de documentos en la carpeta y la longitud de cada uno de esos documentos. Cuando ejecuté la macro, lo hice en una carpeta que contenía 9 documentos con un promedio de 97 páginas por documento. La macro tardó poco menos de 8 minutos en completarse y, mientras se estaba ejecutando, no pude hacer nada más en Word. (De hecho, podría preguntarse fácilmente si su sistema está «colgado»)

Otra cosa a tener en cuenta es que la salida puede ser bastante larga y parecer bastante redundante. Esto se debe a que las palabras mal escritas pueden aparecer varias veces en la colección .SpellingErrors. Por ejemplo, digamos que tiene un documento que contiene la palabra «Cftype», que obviamente está marcada como mal escrita. Si la palabra se usa 30 veces en el documento, se marcará 30 veces y, por lo tanto, terminará 30 veces en la lista de errores ortográficos. Aunque está más allá del alcance de esta sugerencia, puede modificar la macro para verificar si una palabra se marcó previamente como mal escrita y luego agregarla solo si es un error ortográfico único.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.

link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

WordTips es su fuente de formación rentable en Microsoft Word.

(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (13488) se aplica a Microsoft Word 2007, 2010, 2013 y 2016.