Encontrar texto entre comillas en VBA (Microsoft Word)
Jennifer necesita una forma, en una macro, de encontrar una cadena rodeada de comillas simples o rectas (o una combinación de las dos). Parece que no puede encontrar la combinación adecuada de comandos para el método Find para localizar todas las instancias de dicho texto en todas las versiones de Word.
Es importante tener claro lo que se busca. La suposición en este consejo es que su macro requiere que busque una cadena específica rodeada de comillas, no cualquier cadena rodeada de comillas. Por ejemplo, en un documento que contiene dos cadenas entre comillas, como «mi texto entre comillas» y «más texto entre comillas», solo desea encontrar una de las cadenas para las que conoce el texto, de antemano, no ambas cadenas. .
En este caso, está bien utilizar el método Find, como puede observar. La pregunta es cómo acomodar la posibilidad de comillas tipográficas y comillas rectas en lo que busca. Afortunadamente, el método Find, de forma predeterminada, coincide indistintamente con comillas rectas e inteligentes. El punto clave es saber cómo especificar que desea que se incluyan las comillas en la búsqueda. El siguiente fragmento de código debería funcionar:
Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = """my quoted text""" .Format = False .MatchWildcards = False End With Selection.Find.Execute
La clave de este código es cómo se asigna la información a la propiedad .Text. Tenga en cuenta que lo que esté buscando (en este caso, «mi texto citado») está rodeado por tres comillas a cada lado. La razón de esto es bastante misteriosa: la cadena que está buscando debe estar entre comillas; esto es requerido por VBA. Esto se muestra aquí:
"my quoted text"
Dado que desea un carácter de comillas real al principio de lo que está buscando, debe incluir una segunda comilla como «delimitador» para indicar que desea encontrar el carácter de comillas. Esto significa que ahora hay tres comillas al principio:
"""my quoted text"
La misma técnica extra-quote-mark-as-delimiter también se aplica al final de la cadena, por lo que termina con lo que se muestra en el fragmento de código.
Cuando se ejecuta el código, Word encuentra diligentemente la cadena, rodeada de cualquier combinación de comillas rectas o tipográficas, según se desee.
También debe tenerse en cuenta que este enfoque solo funciona si está realizando una búsqueda regular, con la propiedad .MatchWildcards establecida en False.
_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). Esta sugerencia (11639) se aplica a Microsoft Word 2007, 2010, 2013, 2016, 2019 y Word en Office 365. Puede encontrar una versión de esta sugerencia para interfaz de menú anterior de Word aquí:
link: / word-Finding_Quoted_Text_in_VBA [Encontrar texto entre comillas en VBA]
.