Mientras analiza sus documentos, es posible que se pregunte si existe una manera de crear un recuento del número de palabras del documento. Desafortunadamente, Word no incluye esta función, pero hay un par de cosas que puede hacer.

Primero, si quieres saber la cantidad de veces que se usa una palabra o frase específica, puedes seguir estos pasos:

  1. Presione Ctrl + H para mostrar la pestaña Reemplazar del cuadro de diálogo Buscar y reemplazar. (Ver figura 1)

  2. En el cuadro Buscar, ingrese la palabra o frase que desea contar.

  3. En el cuadro Reemplazar con, ingrese ^ &. Esta secuencia de caracteres le dice a Word que desea reemplazar lo que encuentre con lo que colocó en el cuadro Buscar. (En otras palabras, estás reemplazando la palabra o frase por sí misma.)

  4. Si está buscando palabras individuales, asegúrese de hacer clic en la casilla de verificación Buscar solo palabras completas.

  5. Haga clic en Reemplazar todo. Word realiza los reemplazos y le muestra cuántas instancias reemplazó. Ese es el número que quieres.

Este método funciona muy bien si solo tiene una o dos palabras o frases que desea conocer. Puede automatizar un poco el proceso utilizando una macro para buscar en el documento y contar por usted. La siguiente macro solicita al usuario una palabra y luego cuenta el número de veces que esa palabra aparece en el documento. Seguirá pidiendo otra palabra hasta que el usuario haga clic en el botón Cancelar.

Sub FindWords()

Dim sResponse As String     Dim iCount As Integer

' Input different words until the user clicks cancel     Do         ' Identify the word to count         sResponse = InputBox( _           Prompt:="What word do you want to count?", _           Title:="Count Words", Default:="")

If sResponse > "" Then             ' Set the counter to zero for each loop             iCount = 0             Application.ScreenUpdating = False             With Selection                 .HomeKey Unit:=wdStory                 With .Find                     .ClearFormatting                     .Text = sResponse                     ' Loop until Word can no longer                     ' find the search string and                     ' count each instance                     Do While .Execute                         iCount = iCount + 1                         Selection.MoveRight                     Loop                 End With                 ' show the number of occurences                 MsgBox sResponse & " appears " & iCount & " times"

End With             Application.ScreenUpdating = True         End If     Loop While sResponse <> ""

End Sub

Si desea determinar todas las palabras únicas en un documento, junto con la cantidad de veces que cada una de ellas aparece en el documento, entonces se necesita un enfoque diferente. La siguiente macro de VBA hará precisamente eso.

Sub WordFrequency()

Const maxwords = 9000          'Maximum unique words allowed     Dim SingleWord As String       'Raw word pulled from doc     Dim Words(maxwords) As String  'Array to hold unique words     Dim Freq(maxwords) As Integer  'Frequency counter for unique words     Dim WordNum As Integer         'Number of unique words     Dim ByFreq As Boolean          'Flag for sorting order     Dim ttlwds As Long             'Total words in the document     Dim Excludes As String         'Words to be excluded     Dim Found As Boolean           'Temporary flag     Dim j, k, l, Temp As Integer   'Temporary variables     Dim ans As String              'How user wants to sort results     Dim tword As String            '

' Set up excluded words     Excludes = "[the][a][of][is][to][for][by][be][and][are]"



' Find out how to sort     ByFreq = True     ans = InputBox("Sort by WORD or by FREQ?", "Sort order", "WORD")

If ans = "" Then End     If UCase(ans) = "WORD" Then         ByFreq = False     End If          Selection.HomeKey Unit:=wdStory     System.Cursor = wdCursorWait     WordNum = 0     ttlwds = ActiveDocument.Words.Count

' Control the repeat     For Each aword In ActiveDocument.Words         SingleWord = Trim(LCase(aword))

'Out of range?

If SingleWord < "a" Or SingleWord > "z" Then             SingleWord = ""

End If         'On exclude list?

If InStr(Excludes, "[" & SingleWord & "]") Then             SingleWord = ""

End If         If Len(SingleWord) > 0 Then             Found = False             For j = 1 To WordNum                 If Words(j) = SingleWord Then                     Freq(j) = Freq(j) + 1                     Found = True                     Exit For                 End If             Next j             If Not Found Then                 WordNum = WordNum + 1                 Words(WordNum) = SingleWord                 Freq(WordNum) = 1             End If             If WordNum > maxwords - 1 Then                 j = MsgBox("Too many words.", vbOKOnly)

Exit For             End If         End If         ttlwds = ttlwds - 1         StatusBar = "Remaining: " & ttlwds & ", Unique: " & WordNum     Next aword

' Now sort it into word order     For j = 1 To WordNum - 1         k = j         For l = j + 1 To WordNum             If (Not ByFreq And Words(l) < Words(k)) _               Or (ByFreq And Freq(l) > Freq(k)) Then k = l         Next l         If k <> j Then             tword = Words(j)

Words(j) = Words(k)

Words(k) = tword             Temp = Freq(j)

Freq(j) = Freq(k)

Freq(k) = Temp         End If         StatusBar = "Sorting: " & WordNum - j     Next j

' Now write out the results     tmpName = ActiveDocument.AttachedTemplate.FullName     Documents.Add Template:=tmpName, NewTemplate:=False     Selection.ParagraphFormat.TabStops.ClearAll     With Selection         For j = 1 To WordNum             .TypeText Text:=Trim(Str(Freq(j))) _               & vbTab & Words(j) & vbCrLf         Next j     End With     System.Cursor = wdCursorNormal     j = MsgBox("There were " & Trim(Str(WordNum)) & _       " different words ", vbOKOnly, "Finished")

End Sub

Cuando abre un documento y ejecuta esta macro, se le pregunta si desea crear una lista ordenada por palabra o por frecuencia. Si elige palabra, la lista resultante se muestra en orden alfabético. Si elige la frecuencia, la lista resultante estará en orden descendente según la cantidad de veces que apareció la palabra en el documento.

Mientras se ejecuta la macro, la barra de estado indica lo que está sucediendo.

Según el tamaño de su documento y la velocidad de su computadora, la macro puede tardar un poco en completarse. (Lo ejecuté con un documento de 719 páginas con más de 349.000 palabras y tardé unos cinco minutos en completarlo).

Tenga en cuenta que hay una línea en la macro que establece un valor en la cadena Excluye. Esta cadena contiene palabras que la macro ignorará al armar la lista de palabras. Si desea agregar palabras a la lista de exclusión, simplemente agréguelas a la cadena, entre [corchetes]. Además, asegúrese de que las palabras de exclusión estén en minúsculas.

Si no le gusta usar macros por alguna razón, existen otros programas que puede usar para crear recuentos de palabras. Por ejemplo, el editor de texto NoteTab (la versión «ligera» se puede descargar gratis en http://www.notetab.com) incluye una función que proporciona un recuento de palabras.

Todo lo que necesita hacer es copiar todo su documento y pegarlo en NoteTab. Luego, dentro de NoteTab, elija Herramientas | Estadísticas de texto | Más. Presenta un análisis de la frecuencia de palabras, incluyendo porcentajes.

_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 (1833) se aplica a Microsoft Word 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Word (Word 2007 y más tarde) aquí:

link: / wordribbon-Generating_a_Count_of_Word_Occurrences [Generando un recuento de apariciones de palabras].