
Devolver el número de veces que aparece una palabra o frase en un documento de Microsoft Word es una tarea común para muchos escritores y editores. No querrás abusar de las palabras. Por otro lado, es posible que desee asegurarse de haber ingresado el nombre de un cliente con frecuencia cuando esté trabajando con material de marketing. Afortunadamente, Word tiene dos formas integradas de contar las apariciones de una palabra específica. Si eso no es lo suficientemente flexible, puede usar un subprocedimiento de Word VBA. En este artículo, le mostraré métodos integrados y un procedimiento.
VER: Política de instalación de software (Premium de TechRepublic)
Uso Microsoft 365 en un sistema Windows 10 de 64 bits, pero puede usar una versión anterior. Le recomiendo que posponga la actualización a Windows 11 hasta que se resuelvan todos los problemas. Para su comodidad, puede descargar los archivos de demostración .docm, .doc y .cls. Los archivos de demostración se componen de dos conjuntos del mismo texto generado por la función RAND() de Word, pero querrá descargar los archivos de demostración para el procedimiento de Word VBA. Word para la web no es compatible con VBA, pero admite un método integrado.
Acerca de la función Buscar de Word
Si una respuesta sobre la marcha es lo suficientemente buena, entonces la función Buscar de Word es el camino a seguir. Por ejemplo, busquemos en el archivo de demostración la palabra «video» de la siguiente manera:
- En la pestaña Inicio, haga clic en Edición y elija Buscar en el menú desplegable.
- En el panel resultante, ingrese video.
¡Eso es todo! Como puedes ver en Figura Aesta función muestra la cantidad de veces que aparece la palabra video en el documento actual.
Figura A

Además, puede hacer clic en los enlaces a continuación para acceder a cada ocurrencia. Mientras la función Buscar esté activa, el resaltado amarillo permanecerá. Cuando cierra el panel de navegación, los resaltados desaparecen.
Tan fácil como eso es, hay una segunda manera. Presione Ctrl + H o elija Reemplazar en el menú desplegable Edición y haga clic en la pestaña Buscar. Ingresar video en el control Buscar, haga clic en Lectura destacada y luego seleccione Resaltar todo. Figura B muestra resultados similares. La gran diferencia es que el resaltado permanece cuando cierra el cuadro de diálogo Buscar y reemplazar. Es conveniente para navegar, pero tan pronto como intentas trabajar en el documento, los resaltados desaparecen.
Figura B

Ambos métodos son rápidos y fáciles, y funcionan en Word para la web. Si cualquiera de los dos satisface sus necesidades, no necesita esforzarse más. La única característica que falta en Word para la web es el resaltado; no permanece en el documento una vez que cierra el cuadro de diálogo Buscar y reemplazar. Si necesita algo un poco más flexible, es posible que necesite un procedimiento de Word VBA.
Un procedimiento de VBA para encontrar palabras en Word
La función Buscar de Word es una manera fácil de obtener el recuento de una palabra o frase específica, pero está limitada a una palabra o frase a la vez. Si desea verificar el conteo de más de una palabra, VBA puede ayudarlo. El subprocedimiento en Listado A puede ser un poco intimidante si no está familiarizado con VBA, pero no se preocupe. Ahora, agreguemos el código a un archivo de documento de Word.
Listado A
Sub FindWord()
'Returns the count of a specific word or phrases in the current document.
Dim intWordCount As Integer
Dim i As Integer
Dim w As Range
Dim strResponse As String
Dim intCount As Integer
On Error GoTo ErrHandler
'Sets For counter to the number of words in the current document.
intWordCount = ActiveDocument.Words.Count
For i = 0 To intWordCount
'Use InputBox() to solicit word or phrase.
strResponse = InputBox("Enter word", "Word count")
'Catches empty string in InputBox and quits procedure.
If strResponse = "" Then
Exit Sub
'Cycles through Words collection and compares each word in document
'to user input value, stored as strResponse.
Else
'Resets occurrence counter to 0.
intCount = 0
'Compares current word in document to user input value
'stored in strResponse.
For Each w In ActiveDocument.Words
If Trim(w.Text) = Trim(strResponse) Then intCount = intCount + 1
Next
MsgBox strResponse & "occurs " & intCount & " times.", vbOKOnly
End If
'Reduces For counter by 1.
intWordCount = intWordCount - 1
Next
Set w = Nothing
Exit Sub
ErrHandler:
MsgBox Err.Number & " " & Err.Description
Set w = Nothing
End Sub
Si está utilizando una versión de cinta, asegúrese de guardar el libro de trabajo como un archivo habilitado para macros. Si está trabajando en la versión de menú, puede omitir este paso.
Para ingresar al procedimiento, presione Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, seleccione ThisDocument del documento. (Si tiene más de un archivo de Word abierto, tenga cuidado de seleccionar el ThisDocument correcto). Puede ingresar el código manualmente o importar el archivo .cls descargable. Además, la macro se encuentra en los archivos descargables .docm, .doc y .cls. Si ingresa el código manualmente, no lo pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego péguelo en el módulo ThisDocument. Al hacerlo, se eliminarán los caracteres web fantasma que, de lo contrario, podrían causar errores. Ahora está listo para ejecutar el procedimiento.
Cómo ejecutar el procedimiento VBA en Word
Cuando ejecute la macro, mostrará un cuadro de entrada, en el que ingresará una palabra que desea contar, y luego abrirá un cuadro de mensaje que muestra el número de ocurrencias de la palabra que ingresó. Este procedimiento de Word tiene una limitación: encuentra palabras sueltas; no encontrará frases.
Para ejecutar el subprocedimiento de Word, haga clic en la pestaña Desarrollador. En el grupo Código, haga clic en Macros. En el cuadro de diálogo resultante, elija FindWord, como se muestra en Figura C y haga clic en Ejecutar. Cuando Word muestre el cuadro de entrada, ingrese la palabra video—el caso no importa, y lo explicaré en un minuto— y haga clic en Aceptar.
Figura C

Un cuadro de mensaje muestra casi inmediatamente el número de ocurrencias, como se muestra en Figura D.
Figura D

Descarte el cuadro de mensaje y Word volverá a mostrar el cuadro de entrada. Ingresar profesional. Esta vez, el cuadro de mensaje muestra el número de veces que aparece profesional en el documento. Este proceso continuará hasta que haga clic en Cancelar en el cuadro de entrada.
¿Tienes curiosidad por saber cómo funciona el procedimiento?
Cómo funciona el procedimiento Word VBA
Las primeras líneas son declaraciones de variables. Luego, el código almacena la cantidad de palabras en el documento en la variable entera, intWordCount. El primer ciclo For usa esa variable para recorrer cada palabra del documento. Al final del procedimiento, el código resta 1 de la variable; es una especie de cuenta regresiva. Así es como el primer bucle For sabe cuándo detenerse.
El cuadro de entrada almacena su valor, la palabra que ingresa, como strResponse. Si no ingresa nada y cierra el cuadro de entrada o presiona Cancelar, la instrucción Exit Sub finaliza el procedimiento. De lo contrario, Word ejecuta Else de la instrucción If. Primero, Word establece la variable intCount en 0; este es un conteo interno que se mantiene al día con el número de ocurrencias. El segundo bucle For es una construcción For Each y recorre cada palabra, representada por w, en el documento. Esta variable es en realidad un objeto Range, que es requerido por la colección de Word. Pero en pocas palabras, w representa cada palabra en el documento (colección de palabras). Esta es la razón por la cual el procedimiento no puede manejar frases—w es una sola palabra.
Recuerde que strResponse es la palabra que está contando, w es la palabra actual en el documento y la propiedad w.Text es el contenido real. A veces, .Text y strResponse contendrán un carácter de espacio, que es manejado por la función TRIM().
Si strResponse y w.Text son iguales, Word suma 1 a intWords, el número de ocurrencias de strResponse, el valor de entrada del usuario. Este bucle compara cada palabra del documento con strResponse. Cuando el bucle se queda sin palabras, muestra el valor de intWords, el número de veces que aparece strResponse en el documento, en un cuadro de mensaje.
La última declaración de contador resta 1 de intWordCount y el proceso se repite, continuando hasta que haya recorrido todas las palabras del documento. De esta manera, el cuadro de entrada continúa solicitando palabras, por lo que no tiene que ejecutarlo cada vez. Cuando haya terminado, haga clic en Cancelar en el cuadro de entrada.
El manejo de errores es básico, por lo que querrá probar este subprocedimiento de Word a fondo usando sus archivos antes de ponerlo a trabajar. Con tres formas de contar palabras y frases, siempre debe tener una solución rápida.
Es poco probable que desee utilizar la ruta de la pestaña Desarrollador para ejecutar el procedimiento. Si es así, lea Cómo agregar macros de Office a la barra de herramientas de QAT para un acceso rápido.