Contactos

Usando comodines

Word tiene una herramienta de búsqueda muy poderosa que puede usar para encontrar información para casi cualquier tipo de condición. Hay comodines especiales que le permiten buscar información según un patrón o secuencia de caracteres específicos.

Las búsquedas con comodines se realizan en un cuadro de diálogo Encontrar y reemplazar (Encontrar y reemplazar). Te presentaremos las reglas básicas para usar esta herramienta para que aprendas a buscar en Documentos de Microsoft Word es prácticamente todo lo que quieras.

Abra el archivo de Word y presione el atajo de teclado Ctrl + H para abrir un cuadro de diálogo Encontrar y reemplazar(Encontrar y reemplazar). Haga clic en Más(Más) para expandir el cuadro de diálogo y acceder a opciones adicionales.

Nota: Si en lugar del botón Más(Más) Ves un botón Menos(Menos), no es necesario presionar nada. El cuadro de diálogo ya está maximizado.

Marque la casilla junto a la opción Usa comodines(Comodines). Tenga en cuenta que debajo de la caja Encontrar que(Buscar) apareció la inscripción correspondiente.

Nota: Cuando el parámetro Usa comodines(Comodines) está habilitado, Word solo busca una coincidencia exacta con el texto especificado. Opciones Caso de coincidencia(Sensible a mayúsculas y minúsculas) y Encuentra solo palabras completas(Solo palabra completa) están atenuados para demostrar que están habilitados automáticamente y no se pueden deshabilitar mientras la opción está seleccionada Usa comodines(Comodines).

Por ejemplo, busquemos todas las repeticiones de texto que comienzan con "t" y terminan con "e" con cualquier número de caracteres entre estas letras. Para hacer esto, ingrese "t" en el campo Encontrar que(Buscar) y haga clic en Especial(Especial) en la parte inferior del cuadro de diálogo. En el menú que aparece, seleccione 0 o más caracteres(Cualquier número de caracteres) o un asterisco (*).

Nota: Si sabe qué carácter especial usar, puede ingresarlo directamente en el campo Encontrar que(Encontrar). Botón Especial(Especial) le da una pista en caso de que no recuerde qué caracteres especiales están disponibles y cuál es su propósito.

Se procesará la solicitud de búsqueda. Cuando se encuentre la primera coincidencia, presione el botón Buscar siguiente(Buscar siguiente) para buscar los siguientes fragmentos de texto que coincidan con su consulta.

Para buscar texto que contenga cualquier carácter, utilice el signo de interrogación (?). Por ejemplo, si ingresa la consulta "d? G" en el campo Encontrar que(Buscar), todas las palabras que constan de tres cartas comenzando con "d" y terminando con "g", por ejemplo, "cavar", "cavar", "perro".

También puede definir letras específicas para buscar especificándolas entre corchetes “”. Por ejemplo, si ingresa la consulta "bt" en el campo Encontrar que(Buscar), se encontrarán las palabras "bate", "apuesta", "bit", "bot" y "pero".

Si el parámetro Usa comodines(Comodines) está habilitado y debe encontrar uno de los caracteres que se usa como comodín, poner una barra (/) delante de ese carácter y ejecutar la búsqueda. Por ejemplo, para buscar un signo de interrogación cuando la opción está habilitada Usa comodines(Comodines) debe ingresar la consulta "/?" en el campo Encontrar que(Encontrar).

Además, se pueden usar comodines para reemplazar texto. Por ejemplo, el comodín “/ n” (donde n es el número de la palabra a reemplazar) se puede usar para buscar una expresión y luego reemplazarla con otra expresión. Por ejemplo, ingresamos "(Kaufman) (Lori)" en el campo Encontrar que(Buscar) y en el campo Reemplazar con(Reemplazar con) - “/ 2/1” (no olvide poner un espacio entre el número 2 y el segundo carácter “/”). Como resultado, Word encuentra "Kaufman Lori" y lo reemplaza con "Lori Kaufman".

Microsoft Word proporciona una herramienta de búsqueda y reemplazo increíblemente poderosa. La capacidad de usarlo correctamente simplifica enormemente la edición y edición de documentos. Esta sección detalla el uso de caracteres especiales en operaciones de búsqueda y reemplazo; se dan varios ejemplos.

Considere un caso simple de búsqueda y reemplazo. Se requiere reemplazar el apellido de Ivanov con Petrov en todo el documento. Esto se hace fácilmente mediante un procedimiento estándar de búsqueda y reemplazo. Sin embargo, dado que el nombre de Ivanov en el documento puede ser en diferentes casos y números, tendrá que realizar muchas sustituciones seguidas.

Uso caracteres especiales le permite completar la tarea de una vez en un solo paso.

Otro ejemplo. Hay muchas fracciones decimales en el documento. Algunas de las fracciones se escriben con un punto, otras, con una coma. Se requiere hacer tal reemplazo para que la ortografía de todas las fracciones sea uniforme.

Resulta que esto requiere solo una operación de búsqueda y reemplazo usando caracteres especiales.

Un ejemplo más complejo de modificación de texto. Se proporciona un documento extenso que contiene el texto de un diccionario de términos informáticos de la siguiente forma:

documento sin titulo

No hay resaltados de texto en el texto. El número total de entradas, por ejemplo, unas 30.000.

Requerido:

    1. Busque todos los términos traducibles en inglés y resáltelos en negrita. En este caso, deje intactas todas las demás palabras en inglés.

    2. El guión entre el término en inglés y su traducción debe reemplazarse por un guión. En este caso, deje intactos todos los demás guiones.

    3. Párrafos de términos en inglés muévase del anterior en 2 puntos y asegure la protuberancia de estos párrafos en 0,25 cm.

Para completar la tarea, debe encontrar los 30,000 fragmentos de texto que cumplan con las condiciones anteriores, hacer 30,000 selecciones en negrita y 30,000 reemplazos de guión a guión y cambiar párrafos.

¿Se puede hacer esto en menos de 1 minuto?

Sí tu puedes. Para hacer esto, necesita realizar una operación de búsqueda y reemplazo usando caracteres especiales.

La solución a estos problemas se da al final de la sección.

Hay dos tipos de caracteres especiales en Microsoft Word: Símbolos especiales y comodines... Ambos son convenientes para ingresar a la búsqueda y reemplazar cadenas usando el botón "Especial" en el cuadro de diálogo de búsqueda y reemplazo.

Caracteres especiales se refiere a caracteres que no están en el teclado y / o que no se pueden ingresar directamente en la cadena de búsqueda o reemplazo. Por ejemplo, salto de línea forzado, salto de línea suave, espacio sin ruptura, etc.

Comodines se utilizan para formar condiciones complejas de búsqueda y reemplazo de acuerdo con ciertas reglas. Se pueden utilizar para especificar rangos de caracteres y expresiones que cumplan una serie de condiciones. Para poder utilizar comodines, debe habilitar la opción Comodines en el cuadro de diálogo Buscar y reemplazar.

Aquí hay una lista completa de símbolos y signos y ejemplos de su uso.

documento sin titulo

documento sin titulo

Especialista.simbolos

Qué quieren decir

Carácter de tabulación (→)

Un comentario


Si la opción Usar comodines está habilitada, se encontrarán tanto un salto de página forzado como un salto de sección.

Espacio irrompible (°)

Guión irrompible (-)

Transporte suave (¬)

documento sin titulo

Especialista. señales

Qué quieren decir

Ejemplo de una cadena de búsqueda

Que encontraras

Cualquier personaje

tanque, lado, haya, b5k, b¶k etc.

Cualquier número de caracteres

Toro, desorden, Blanco.¶
Coronel
etc.

Uno de los caracteres especificados

tanque, lado, haya

Un personaje de una gama.
El rango debe especificarse en orden ascendente de códigos de caracteres.

Cualquier letra rusa en minúscula

Cualquier letra rusa mayúscula

Cualquier digito

Cualquier carácter individual no especificado después del signo de exclamación

tanque, lado etc., pero no Toro

Cualquier carácter individual fuera del rango especificado después del signo de exclamación

Lado, Muelle etc., pero no lado, Doc

Cualquier carácter que no sean números

Estrictamente n partes del carácter o expresión anterior. Una expresión es cualquier cosa que esté entre paréntesis. La expresión puede constar de caracteres específicos y contener caracteres especiales. señales.

1000 , pero no 100 , 10000

102020 , pero no 1020 , 10202020

no más del carácter o expresión anterior

1000 , 10000 , 100000 etc., pero no 100

De n a m piezas del carácter o expresión anterior

1000 , 10000 , pero no 100 , 100000

uno o más de los caracteres o expresiones anteriores

10 , 100 , 1000 , 10000 etc.

El comienzo de una palabra

lado gris, pero no colo lado

Fin de palabra

colo lado, pero no lado gris

documento sin titulo

Especialista. simbolos

Qué quieren decir

Carácter de fin de párrafo (¶)

Carácter de tabulación (→)

Cualquier carácter ANSI o ASCII nnn

Contenido del portapapeles

Buscar contenido de cadena (o lo que se encuentre)

Salto de columna

Forzar salto de línea ()

Salto de página forzado (--Salto de página--)

Guión largo (-). Símbolo con código 0151.

En guión (-). Símbolo con código 0150.

Espacio irrompible (°)

Guión irrompible (-)

Transporte suave (¬)

documento sin titulo

Señales

Qué quieren decir

Número de expresión norte desde la barra de búsqueda

El punto y coma en los operadores (n;) y (n; m) no es solo un punto y coma, sino el llamado separador de lista. En EE. UU. Es una coma, en Rusia es un punto y coma. Para saber exactamente qué carácter es el separador de lista en su configuración, consulte Panel de control \ Idioma y estándares \ Números \ Separador de lista.

Para buscar caracteres en el documento que se utilizan como caracteres especiales en la cadena de búsqueda, debe escribir una barra invertida (\) antes de ellos. Por ejemplo, si la opción Comodines está habilitada, para buscar un signo de exclamación, escriba una barra invertida seguida de un signo de exclamación (\!) En la cadena de búsqueda.

Opción comodín debe estar habilitado en el diálogo de buscar y reemplazar. Esta condición debe cumplirse para todos los ejemplos siguientes.

documento sin titulo

Línea de búsqueda

Que encontraras

[!^0013]^0013[!^0013]

Un solo final de párrafo rodeado por otros dos caracteres. ( Análisis detallado vea abajo).

Dos o más finales de párrafos

Dos o más caracteres espaciales

Cualquier signo de puntuación (.,:;!?)

Dos dígitos cualesquiera separados por un espacio

^0032

Número y letra (inglés o ruso) separados por un espacio. (Para un análisis detallado, vea a continuación).

Guion y numero

<@[correo electrónico protegido]>

Dos enteros separados por un guion

Número entre paréntesis

Un número entero (más precisamente, una secuencia continua de números)

<@,@>

Fracción decimal, separada por comas

palabra inglesa

<[А-яЁё]@>

Palabra rusa

<[А-ЯЁ][а-яё]@>

Una palabra rusa en minúsculas, pero con mayúsculas. (Para un análisis detallado, vea a continuación).

[!^0013]^0013[!^0013]

documento sin titulo

1er carácter de la cadena de búsqueda

2do personaje

3er personaje

Fin del párrafo

Cualquier carácter, pero no el final de un párrafo

Fin de párrafo (carácter con código 0013).

El símbolo con el código 0013 (final del párrafo) se indica entre corchetes.
Firmar "!" indica que cualquier carácter excepto el final de un párrafo puede estar en esta posición.

Así, hemos indicado a la búsqueda que buscaremos una secuencia de tres caracteres. El medio debe ser el final del párrafo, y el primero y el tercero pueden ser cualquier cosa menos el final del párrafo.

^0032

documento sin titulo

1er carácter de la cadena de búsqueda

2do personaje

3er personaje

Cualquier digito

Cualquier letra (inglés o ruso)

El rango de caracteres entre corchetes es de 0 a 9, es decir, números.

Espacio (carácter con código 0032).

Un carácter válido está definido por tres rangos y dos caracteres específicos.
A- Z- mayúsculas en inglés;
a-z- Letras minúsculas en inglés;
Y yo- letras mayúsculas y minúsculas rusas;
Ella- Mayúscula y minúscula mi(para cubrir todo el alfabeto ruso).

Así, hemos indicado a la búsqueda que buscaremos una secuencia de tres caracteres. El primero puede ser cualquier número, el segundo solo puede ser un espacio y el tercero puede ser cualquier letra inglesa o rusa.

<[А-ЯЁ][а-яё]@>

documento sin titulo

1ra posición de la cadena de búsqueda

2da posición

Cualquier letra mayúscula rusa

Cualquier letra minúscula rusa

El rango de caracteres de la A a la Z y E (es decir, cualquier letra mayúscula rusa) se indica entre corchetes.
Firmar "<» указывает на то, что прописная буква должна быть в начале слова.

El rango entre corchetes define todas las letras minúsculas rusas.
El signo "@" indica que el número de letras minúsculas rusas puede ser igual o mayor que cero.
El signo ">" indica el final de una palabra.

Así, hemos indicado a la búsqueda que buscaremos una secuencia de dos caracteres. La primera puede ser cualquier letra rusa mayúscula y la segunda puede ser cualquier letra rusa minúscula.

Para trabajar con expresiones, habilite la opción Comodines.

En la cadena de búsqueda, una expresión es todo lo que está entre paréntesis, que en este caso actúa como caracteres especiales. Una expresión puede estar compuesta por caracteres específicos o contener comodines o caracteres especiales. El orden de las expresiones determina su numeración.

En la cadena de reemplazo, las expresiones se representan como: \ n, donde n es el número de la expresión en la cadena de búsqueda.

Editemos la oración: Nastya está comiendo manzanas.

documento sin titulo

documento sin titulo

Línea de búsqueda

Cadena de reemplazo

Buscar y reemplazar resultado

([!^0013]^0013)([!^0013])

Inserta una línea en blanco entre los párrafos que no lo contenían.

Eliminar líneas en blanco

Reemplazar dos o más espacios con pestañas

^0032([.,:;\!\?])

Quite el espacio antes del signo de puntuación (.,:;!?)

()^0032()

Reemplazo de un espacio entre números con un espacio irrompible

()^0032()

Reemplazo del espacio entre un número y una letra (inglés o ruso) por un espacio irrompible

Reemplazo de un guión delante de un dígito con un signo menos

Reemplazo de paréntesis alrededor de un número con corchetes

1. Reemplazo del apellido Ivanov en el documento con el apellido Petrov de una vez en todos los casos:

documento sin titulo

Por supuesto, tal reemplazo es posible solo con apellidos en los que los mismos finales de caso.

2. Se requiere hacer tal reemplazo para que la ortografía de todas las fracciones sea uniforme, cuando parte de las fracciones se escribe a través de un punto, parte a través de una coma.

Hay dos opciones para este reemplazo:

documento sin titulo

3. Procesamiento del texto del diccionario de términos informáticos.

Así es como se resuelve en un minuto:

Primero, todo el texto tiene el siguiente formato: Formato-> Párrafo-> Sangría izquierda 0.25 cm. Para la línea de reemplazo usando el botón "Formato", primero debe configurar: "Fuente" cara Negrita, "Párrafo" Sangría izquierda 0 cm, Espacio “Párrafo” antes del 2 Vie.

Luego, la instalación se realiza en la búsqueda y reemplazo de cadenas:

documento sin titulo

Línea de búsqueda

Cadena de reemplazo

(^[correo electrónico protegido])^0032-

Después de eso, debe hacer clic en el botón "Reemplazar todo". Como resultado:

    Todos los términos traducidos al inglés están resaltados en negrita. Sin embargo, todas las demás palabras en inglés permanecen intactas.

    El guión entre el término en inglés y su traducción se reemplaza por un guión. Sin embargo, todos los demás guiones permanecen intactos.

    Los párrafos con términos en inglés se mueven hacia abajo de los párrafos anteriores con una explicación del término y se mueven hacia la izquierda.

Es decir, en total, por ejemplo, 30.000 fragmentos de texto que cumplen las condiciones anteriores, se realizan 30.000 cambios requeridos y se obtiene lo siguiente:

documento sin titulo

Alfa(nu) mericmonitor - pantalla alfanumérica (carácter).
Pantalla diseñada para trabajar con alfabéticos, numéricos y relacionados
información simbólica.
Alfa(nu) mericteclado - teclado alfanumérico.
Teclado para ingresar representaciones de códigos de números y letras, que está marcado
conjunto de caracteres.
Alternollave - clave alternativa.
Una clave de búsqueda de base de datos que no se especifica como clave principal.
Inversión de marca alternativa(AMI) - inversión alterna de unidades. http://members.xoom.com/sergeymh

6. Voronin A. Diseño simple en Word. Microsoft Word 2002 XP. - M .: "SPARRK", 2003. - 352 p.

7. Tecnología de producción de imprenta. Parte 1. Procesos de edición y composición tipográfica. Trabajos de laboratorio para la especialidad 051900 "Gráficos". M .: MGUP, 2002 .-- 60 p.

Búsqueda de documentosPalabra realizado por la función "Buscar". Consulte el artículo "Búsqueda de un documento de Word". Pero puede buscar en Word no solo por palabras, sino también entre mayúsculas y minúsculas, por fuente, estilo, usando comodines, etc.
Si hay muchas palabras similares en el texto, deberá buscar entre ellas en los resultados de la búsqueda. Para encontrar una palabra específica, hay en la búsqueda avanzada de Word... En él, puede encontrar datos sobre datos más precisos y detallados: distingue entre mayúsculas y minúsculas (letras minúsculas o mayúsculas), una palabra por coincidencia completa, encuentre una palabra no solo por el texto, sino también por el diseño de esta palabra, por otra condiciones.
Entonces, en la pestaña "Inicio" en la sección "Edición", presione el botón "Buscar". En la parte inferior de la ventana que aparece, haga clic en el botón "Más >>>". Aparecerá una ventana de búsqueda avanzada. Vamos a considerarlo.
"Dirección" es una búsqueda por Documento de Word, la dirección de la búsqueda en el documento. Por ejemplo, si elegimos la dirección "Adelante", entonces la búsqueda irá desde el cursor solo hacia abajo en el documento. Si seleccionamos "Copia de seguridad", haz un respaldo del documento. En estos casos, la búsqueda no se realizará en enlaces y encabezados y pies de página. Si seleccionamos la búsqueda "En todas partes", Word buscará en todas partes del documento, incl. en encabezados y pies de página, en enlaces.
Buscar por palabras enPalabra.
"Sensible a mayúsculas y minúsculas": esto significa que si escribimos una palabra en minúsculas en la línea de búsqueda, Word buscará solo palabras escritas en minúsculas. Si escribimos una palabra con mayúscula, buscará palabras escritas con mayúscula.
"Solo palabras completas": solo se buscará la palabra que se escribió en la barra de búsqueda. Por ejemplo, en la barra de búsqueda, escribimos la palabra "mamá". Una simple búsqueda arrojará palabras: mamá, mamá, mamá, etc. Todas las palabras que contienen la palabra "mamá". La búsqueda avanzada solo devolverá la palabra "mamá".
Los comodines son caracteres que indican ciertos valores en la palabra. Por ejemplo, marcamos la casilla junto a funciones Comodines de palabra, y en la barra de búsqueda escribieron "C? lo". Esto significa que debe encontrar todas las palabras con estas letras, pero la segunda letra (donde hay un signo de interrogación) puede ser cualquiera. La búsqueda encontró esas palabras: gordo, pueblo.
Echemos un vistazo a algunos comodines.
ComodinesPalabra.
? (signo de interrogación- cualquier letra.
*(estrella)- varios personajes. Por ejemplo, escribieron - "L * s", encontrarán - alces, salmón.
(corchetes)- encontrará todas las palabras con caracteres especificados entre corchetes. Por ejemplo, escribieron en la línea de búsqueda "S [ae] lo", encontrarán - gordo, pueblo. [-] (letras separadas por guiones, entre corchetes)- buscará todas las palabras con letras escritas en el rango entre corchetes. Por ejemplo, escribió "S [a-e] lo", encontrará - manteca de cerdo, aldea, etc.
[!] (signo de exclamación entre corchetes)- buscará palabras que no sean palabras con una letra con un signo de exclamación. Escribieron en la línea de búsqueda "S [! A] lo", encuentra - una aldea. Y la palabra "Salo" no se mostrará en los resultados de búsqueda, aunque hay esta palabra en el texto, p.h. hemos escrito una condición en la barra de búsqueda para que no se busquen palabras en las que la letra “a” aparezca después de la letra “C”.
> (signo mayor que)- es como una flecha, muestra en qué parte de la palabra buscar. Este personaje buscará palabras que terminen con las letras especificadas en la búsqueda. Por ejemplo, lo escribieron así, "(ist)>". Encontrará y mostrará en los resultados de la búsqueda la palabra - hoja, p.ch. termina en ist. Y la palabra "fuente" no se mostrará.
<(знак меньше) – buscará palabras que comiencen con las letras que especifiquemos en la búsqueda. Por ejemplo, escribimos "<[лис]». Найдет слово – лис, не будет искать и не покажет слово, полис.
@ ("Perro" - en ruso coloquial)- caracteres repetidos. Por ejemplo, escribieron "C @ ypyat". Encontrará la palabra para verter.
{ n) (llaves numeradas)- ponga el número (n) entre llaves, que indicará con cuántas repeticiones del carácter especificado necesita buscar palabras. Por ejemplo, lo escribieron así, "* e (2)". Aquí hemos indicado una condición de búsqueda de este tipo: buscar palabras que tengan varios símbolos (*), específicamente la letra "e", que se repetirá 2 veces en palabras. Word encontró una palabra así: "más audaz". Y la palabra "más corto" no se mostrará en los resultados de búsqueda, p.h. tiene una letra "e".
{ n,) (llave con númerony coma) - escribir el número de repeticiones de caracteres del número especificado o más. Por ejemplo, escribieron - "* e (2,)". La búsqueda arrojó las palabras: más audaz, devorador de serpientes.
Poner corchetes en Word, debe cambiar el teclado a la distribución en inglés. Los corchetes están en los botones de las letras rusas "x" y "b".
Tirantes en Word establecer como cuadrado, solo presione primero la tecla "Shift".
Buscando función "Pronunciado como" le permite encontrar palabras que se escriben de manera diferente pero que se pronuncian igual. Esta función solo funciona con texto en inglés.
Función "Todas las formas de palabras" busca todas las formas de las palabras, por ejemplo, tiempos verbales, etc.
Buscar documento de Word por formato.
En el cuadro de diálogo Buscar y reemplazar, haga clic en botón "Formato" ubicado en la parte inferior de la ventana. Elija el que necesita de la lista que aparece.

Los formatos se pueden combinar. Por ejemplo, busque texto escrito en negrita y cursiva con espacios que no se rompan, etc.
Botón especial también tiene una lista de funciones.
Buscar y reemplazar enPalabra.
En Word, no solo puede encontrar una búsqueda avanzada, sino también reemplazar. Vaya a la pestaña "Reemplazar" en el cuadro de diálogo "Buscar y reemplazar", y en la línea "Reemplazar" escriba las condiciones detalladas de reemplazo.
Cómo eliminar en Word una palabra mal escrita que ingresamos accidentalmente, ver el artículo "

El otro día estuve envuelto en todo tipo de perversiones sexuales con los textos de medicina del próximo autor en MS Word. Y tuve que buscar y reemplazar un montón de todo tipo de obscenidades y galimatías, porque los autores, en su mayor parte, no están nada mal entrenados en el idioma ruso (se esfuerzan por escribir todo en cirílico inglés, etc.) y no pueden formatear textos legibles. Había muchas cosas que reemplazar y simplemente cambiar, y las conocidas herramientas de búsqueda integradas en el editor comenzaron a faltar, fue necesario recurrir a su uso. ¿Pero como? El programa mágico Word comenzó a maldecir las máscaras que conocía antes. Como siempre, Google ayudó. Después de investigar un poco, descubrí que los escritores geniales de MS Office a pequeña escala siguieron su propio camino, llamando a esas expresiones comodines y cambiando ligeramente su sintaxis. En general, puedes resolverlo.


Todo resultó ser bastante simple (tengo Office 2007, pero creo que será cierto para versiones anteriores, excepto que habrá pequeñas diferencias en los nombres de los elementos, pero lo resolverá, creo;)) . Y, en general, no había necesidad de buscar en ningún lado. Junto con los inmediatamente visibles, si abre la ventana "Buscar" (Ctrl + F) o "Buscar y reemplazar" (Ctrl + H) en Word, coloque el cursor en el campo "Buscar" y haga clic en el botón "Más". , y después del "Especial", Caracteres especiales, hay una opción más, sobre la cual un poco más abajo. Todo resultó bastante simple (tengo Office 2007, pero creo que será cierto para versiones anteriores, excepto que no Habrá pequeñas diferencias en los nombres de los elementos, pero creo que lo resolverá;)). Y, en general, no había necesidad de buscar en ningún lado. Junto con los inmediatamente visibles, si abre la ventana "Buscar" (Ctrl + F) o "Buscar y reemplazar" (Ctrl + H) en Word, coloque el cursor en el campo "Buscar" y haga clic en el botón "Más". , y después del "Especial", con caracteres especiales, hay una opción más, sobre la cual un poco más abajo.
Primero, sobre las máscaras de búsqueda estándar:
^? - cualquier signo
^ # - cualquier dígito
^ $ - cualquier letra
^ p - Marca de párrafo (¶) (si se seleccionan comodines, reemplácelo con ^ 13)
^ t - carácter de tabulación (→) (si se selecciona la opción "Comodines", reemplácelo con ^ 9)
^ + - guión em (-)
^ = - en guión (-)
^^ - signo de tapa (^)
^ l - salto de línea forzado (carácter ↵ o 0xBF), esto sucede si presiona Shift + Enter (si la opción "Comodines" está seleccionada, reemplácela con ^ 11)
^ n - salto de columna (si se selecciona la opción "Comodines", reemplácelo con ^ 14)
^ 12 - Sección o salto de página (agrega un salto de página cuando se reemplaza)
^ m - Forzar salto de página (también se usa para buscar y reemplazar saltos de sección si se seleccionan comodines)
^ s - espacio que no se separa (º) (Ctrl + Shift + Espacio)
^ ~ - guión que no se separa (≈)
^ - - transporte suave (¬)
Ahora pasemos al campo "Reemplazar con", aquí aparecen dos opciones específicas:
^ & - texto de búsqueda
^ c - contenido del portapapeles
¿Cómo se puede usar esto? Por ejemplo, digamos que necesita encontrar el texto "¡Achtung!" y "Achtung". píntelo de verde y reemplácelo con “Achtung, minen! "(Exactamente rojo). Además, en el texto también tiene la palabra "achtung" con una letra pequeña, que no necesita ser cambiada. Solución:
Escriba en rojo “¡minen! "Y cortar al portapapeles
Buscar (marcando la casilla de verificación "Coincidir caso"): Achtung
Reemplazar con (mueva el cursor a este campo y presione el botón "Formato", luego seleccione "Fuente" y ahí está verde):
Ahora busque: Achtung ^?
Reemplazar con: Achtung, ^ c

Con esto, todo es realmente sencillo y claro. Y si lo necesita en una enorme lista de referencias del formulario
Reynolds J. V., Murchan P., Leonard N. et al. La interlenkin-2 de dosis alta promueve la translocación bacteriana del intestino // Brit. J. Cancer.-1995. -Vol. 72, núm. 3. - págs. 634-636.
traer todo de vuelta a la normalidad
Reynolds J.V., Murchano P., Leonardo N. et al. La interlenkin-2 de dosis alta promueve la translocación bacteriana del intestino // Brit. J. Cancer, 1995. V.72 (3) P. 634-636.
¿Cómo ser? Será muy largo y tedioso editar cada línea con bolígrafos. Pero esto también se puede hacer buscando y reemplazando.
Si marca la casilla de verificación "Comodines" en la ventana de búsqueda y reemplazo, el contenido del botón "Especial" del campo "Buscar" adoptará una forma ligeramente diferente:
? - cualquier signo
[-] - iniciar sesión en el rango
< — в начале слова
> - al final de una palabra
() - distancia
[!] - no
(;) - numero de incidentes
@ - anterior 1 o más
* - cualquier número de caracteres
Y para el campo "Reemplazar con" aparecerá un elemento adicional
\ n - expresión de búsqueda
¿Cómo usarlo? Solo. Empezaré casi en orden.
? y * son esencialmente lo mismo, pero la expresión ?? sa porque la búsqueda significará "avispa [espacio]", "guadaña", "zorro" y un montón de otras cosas que contienen dos caracteres delante de "sa". Y la expresion * sa resaltará todo el texto desde la posición del cursor en el texto hasta la primera "sa" que se encontró, incluido "[cursor] Un animal con el número 25 estaba corriendo por el campo, era un zorro".
El símbolo @ tiene un significado similar a los anteriores. Aquí no tuve suficiente imaginación para un ejemplo, tomo prestado de pequeños y suaves: [correo electrónico protegido] ayuda a encontrar "lote" o "botín", [correo electrónico protegido] le ayuda a encontrar "completo" o "completo", etc. :)
Casi de los mismos símbolos de ópera< и > : <ок le ayudará a encontrar todo "sobre", y ok>- todo tipo de "shock".
La expresión le ayudará a encontrar cualquier letra mayúscula del alfabeto inglés y cualquier letra tanto del ruso como del inglés. La expresión (;) también se usa inseparablemente con esto. Se ve así: digamos que desea encontrar todas las palabras que comienzan con una letra mayúscula y tienen de 4 a 5 letras y terminan con un signo de interrogación. La solución será buscarlos usando la siguiente máscara:
{1;1}{3;4} \?
es decir, busque una letra mayúscula seguida de 3 o 4 letras minúsculas más un signo de interrogación. Hay una pequeña sutileza aquí, ya que el "?" se utiliza como comodín, para que la búsqueda lo interprete como un signo de interrogación, y no como un carácter delante de él, debe poner "\". Si necesita encontrar el carácter "\" en el texto, se verá así \\ , bueno, etc.
Con la ayuda de [!] Puede encontrar, por ejemplo, todo excepto las letras mayúsculas: [! A-Z].
Ahora sobre el operador de búsqueda más interesante: (). Con su ayuda, puede encontrar varias expresiones diferentes y agruparlas usando el operador \ n. Un ejemplo simple: suponga que necesita reemplazar "Apellido Y O" por "Nombre y apellido" en todo el texto. Solución:
Encontrar: ({1;1}{2;11} ) ({1;1} ) ({1;1} )
Reemplazar con: \ 2. \ 3. ^ s \ 1
Es decir, cada expresión entre paréntesis en el campo "Buscar" corresponde en orden al operador \ n en el campo "Reemplazar con".
Ahora creo que puede manejar la tarea anterior usted mismo;)

OPTIMIZACIÓN DE CÓDIGOS

  • Utilice la propiedad StoryLength o la función Len () para determinar el número de caracteres en una parte de un documento, pero no el comando Characters.Count, que lleva mucho tiempo si hay muchos caracteres.
  • En las comprobaciones (Si, Seleccionar, etc.) compare con el valor que se está comprobando, con lo que debería ser.
    • Ejemplo. Al verificar True, es correcto escribir:
      Si N<>Verdadero entonces
      A menudo se escribe erróneamente:
      Si N = Falso entonces
      Si N es de un tipo que no sea booleano, es posible que el código no funcione.
  • Optimización de iterar sobre una matriz (matriz):
    • Rápidamente:
      Para i = LBound (Array) a UBound (Array)
      Siguiente yo
    • Despacio:
      Para cada V en la matriz
      Siguiente V
  • Optimización de la iteración de la colección:
    • Rápidamente:
      Para cada V en Col
      Siguiente V
    • Despacio:
      Para i = 1 al recuento col.
      V = Col (i)
      Siguiente yo
  • En la validación masiva de cadenas, Len (S) = 0 es más lento que S = "".
  • Rendimiento de salto condicional:
    • El operador On ... GoSub ... es un orden de magnitud más rápido que el caso de selección.
    • Seleccionar caso es generalmente una verificación lenta, si es más rápida.
  • Optimización de la iteración de caracteres (Character), etc.:
    • Manera lenta:
      Dim r como rango
      Para cada R en ActiveDocument.Characters
      Siguiente R
    • Camino medio:
      Establecer R = ActiveDocument.Characters.First
      Hacer
      Establecer R = R. Siguiente
      Bucle mientras no (R es nada)
    • Manera rápida:
      Establecer R = ActiveDocument.Range (0, 0)
      Hacer
      Bucle mientras R. Move = 1
  • Optimización de la iteración de párrafos (Párrafo), etc.:
    • Manera lenta:
      Dim P como párrafo
      Para cada P en ActiveDocument.Paragraphs
      Siguiente P
    • Camino medio:
      Establecer P = ActiveDocument.Paragraphs.First
      Hacer
      Establecer P = P. Siguiente
      Bucle mientras no (P no es nada)
    • Manera rápida:
      Dim r como rango
      Establecer R = ActiveDocument.Range (0, 0)
      Hacer mientras R.Move (Unidad: = wdParagraph) = 1
      Establezca P = R. Párrafos.
      Círculo
  • Usar un bucle for each de forma segura
    • Si, durante el procesamiento de un grupo de elementos del documento, la colección en sí cambia (se eliminan o agregan elementos), entonces el ciclo For Each puede omitir algunos elementos (de los que estaban cuando se inició el ciclo).
    • Un ejemplo en el que puede producirse un espacio y no se eliminarán todos los dibujos:
      Atenuar SH como forma

      SH.Delete
      próximo
    • Para que el ejemplo funcione sin fallas, debe crear una colección temporal y recordar todos los elementos que contiene:
      Dim COL como nueva colección, SH como forma
      Para cada SH en Selection.Range.ShapeRange
      COL.Añadir artículo: = SH
      próximo
      Para cada SH en COL
      SH.Delete
      próximo
  • Cuando se hace referencia a un objeto, es conveniente y útil indicar su padre delante de su nombre. Uno es suficiente - Parent.Object, pero toda la cadena también es posible - Parent1.Parent2.Parent3.Object.
    • Ejemplo. En el documento en el editor de VBA, creamos un formulario (UserForm) llamado "MyForm", y luego, para ejecutarlo, insertamos un botón (control CommandButton) en el texto del documento, que también se llamaba "MyForm", que es natural y conveniente. Ahora, si inserta el código MyForm.Show en la macro de presionar el botón, entonces no habrá ningún error durante la compilación, pero recibiremos un error al iniciar. Era correcto escribir Project.MyForm.Show, por lo que no recurrimos al formulario, sino al botón. Si queremos hacer referencia al botón, entonces debemos escribir ThisDocument.MyForm.
  • Para asignar tipos, es conveniente utilizar caracteres especiales: String - $, Integer -%, Long - &, Single -!
    • Ejemplo: Dim String $, Integer%, Long &, Real!
  • Para mejorar la compatibilidad, es mejor reemplazar los nombres de las constantes de Word con sus valores. Esto se aplica a idiomas, listas, campos, etc. Es decir, escribimos 1049 en el código, no wdRussian.
  • V fórmulas matemáticas que escribimos en el código, debemos usar paréntesis, para que en primer lugar se realicen las operaciones que reducen el resultado intermedio. Es decir, primera división y resta, luego multiplicación y suma. De lo contrario, si en alguna etapa del cálculo el número resulta ser demasiado grande, obtenemos el error No. 6 "Desbordamiento" - desbordamiento. Además, directamente en la fórmula, puede traer el tipo de números a Long, por ejemplo, porque por defecto tenemos Integer.
    • Ejemplo. Este es el error:
      Dim V como variante
      V = 999 * 999/999
      V = (999 * 999) / 999
    • De lo contrario, no, aunque matemáticamente el resultado es el mismo:
      V = 999 * (999/999)
      V = 999 y * 999/999
      V = CLng (999) * 999/999
  • Evite cambios innecesarios en el documento. No es necesario asignar la palabra negrita si ya está en negrita. Verifique la necesidad de cambios. Word reacciona a cualquier operación con el documento, lo que afecta el rendimiento. A un número grande ediciones redundantes, la diferencia de tiempo es enorme si agrega una simple verificación.
  • Considere las más y más opciones de Autocorrección de Word de una versión a otra.
    • Primero, cada vez que cambia un documento, incluida una macro, Word realiza sus propias operaciones automáticas. Cuantos más cambios y más autocorrección, más lento funciona la macro.
    • En segundo lugar, puede suceder que la macro corrija algún texto y Word lo corrija inmediatamente a su manera, de acuerdo con la configuración de Autocorrección. Esto puede ser útil al reemplazar comillas, por ejemplo, pero no siempre.
  • Al procesar un documento con una macro durante mucho tiempo, desactive la Funciones de Word... De lo contrario, el procesamiento se ralentizará y es posible que Word se congele.
    • Ejemplo. Toma un documento grande, lo procesa con una macro, pero Word se congela. Incluso sin comprender las macros, puede intentar lo siguiente:
      • Abra el documento que se está procesando.
      • Vaya a las opciones de Word donde deshabilitar:
        • Guardar> Guardar documento automáticamente (obligatorio).
        • Ortografía> Revisar automáticamente la ortografía y la gramática (preferido).
        • Editar> Considerar espacios (preferido).
        • Opciones de autocorrección (opcional, hay demasiadas).
      • Ejecute la macro. Espere a que se complete.
      • Restablezca las opciones de Word a su estado original.
  • Acceder a un elemento de documento por su índice es extremadamente lento. Hablamos de símbolos, palabras, frases, párrafos, etc. Cuantos más elementos haya en el documento, más notorios serán los "frenos".
    • Ejemplo. En lugar de referirse directamente al signo:
      Caracteres del documento (N)
      mejor usa la búsqueda de los personajes que quieras:
      Document.Range.Find
      como último recurso, iterando sobre caracteres en un bucle:
      Para cada C en el documento Caracteres

CONTROL DE ERROR (en caso de error)

  • Código que realiza cambios en el documento, protege en caso de error.
  • En lugar del comando Err.Clear, puede utilizar On Error Resume Next, que también borra el último error. En términos de confiabilidad, esto es incluso útil.
  • En la estructura siguiente, coloque la parte ejecutable después de Else. Dado que, si hay un error en la comprobación, se ejecuta el bloque Then:
    • En caso de error, reanudar siguiente
      Si ... Entonces ... Else ...
  • Si el control de errores está deshabilitado y se produce una asignación a una variable, en caso de error, la variable conservará su valor anterior. Por lo tanto, primero debe restablecer el valor de la variable.
    • Ejemplo de error:
      N = 1
      En caso de error, reanudar siguiente
      N = CLng ("") "Error 13 en tiempo de ejecución
      si N = 0, entonces salga de Sub
    • Ejemplo de trabajo:
      En caso de error, reanudar siguiente
      N = 0: N = CLng ("")
      si N = 0, entonces salga de Sub
    • Derecha:
      En caso de error, reanudar siguiente
      N = CLng ("")
      si Err.Number<>0 Luego salga de Sub

MODO DE VISUALIZACIÓN DE DOCUMENTOS (View.Type)

  • En el caso de que, en la interfaz de Word, se seleccione un elemento fuera de la ventana del documento activo, es posible que ciertas propiedades y métodos del documento activo no estén disponibles.
    • Ejemplo. Si en Word 2003, hace clic con el botón derecho en un elemento del panel Esquema del documento, el documento permanecerá activo, pero se producirá un error al acceder al estilo de párrafo:
      • MsgBox ActiveDocument.Paragraphs.First.Style.NameLocal "Error en tiempo de ejecución 4605
    • Una de las opciones de tratamiento podría ser el código:
      • ActiveDocument.Windows (1) .Panes (1) .Activate
  • La selección se comporta de manera diferente en diferentes vistas de documentos.
  • Al procesar macros, intente utilizar la vista "Normal" (wdNormalView). Esto mejora el rendimiento. Especialmente cuando se trabaja con tablas.
  • Al cambiar el modo de vista, Selection.Range puede cambiar, porque hay modos en los que no se muestran todos los elementos del documento.
    • Ejemplo. Los objetos no son visibles en la vista Normal / Borrador (wdNormalView). Y si, en el modo "Diseño de página" (wdPrintView), selecciona el texto dentro de la etiqueta, entonces, al cambiar el modo a "Normal", Selection.Range colapsará.

BÚSQUEDA (Range.Find)

  • Comodines
    • Para el mismo patrón, con comodines, las búsquedas hacia adelante y hacia atrás pueden producir resultados diferentes. Pruebe sus patrones de búsqueda para saber cuáles son adecuados para buscar hacia adelante y cuáles son adecuados para buscar hacia atrás.
    • Búsqueda con comodines "@" y "(1;)"
      • No da lo mismo.
        • Ejemplo. Al buscar hacia adelante en el texto "111 + 222 + 333":
          • por patrón " [correo electrónico protegido]"un carácter" 1 "se encontrará, y por" 1 (1;) "- una cadena de caracteres" 111 "
          • por el patrón "[! 2] @ +" se encontrará el texto "111+", y por el patrón "[! 2] (1;) +" no se encontrará nada
      • Para búsquedas complejas, especialmente en la dirección opuesta, "@" es más apropiado.
        • Ejemplo. Buscar de nuevo en el texto "One Two Three" por patrón "<[А-Я]{1;}[А-Яа-я]{1;}>"no dará un resultado, a diferencia de"<[А-Я]@[А-Яа-я]@>".
      • La experiencia ha demostrado que "(1;)" es más estable.
        • Ejemplo. Mejor usar "<[А-Я]{1;}>", pero no "<[А-Я]@>". El resultado es el mismo, pero la primera opción es más confiable.
    • Comodín \ n, donde n = 1,2,3 ...:
      • Puede usarse no solo en el campo "Reemplazar" sino también en el campo "Buscar".
        • Ejemplo. Si buscamos el patrón "(ma) \ 1", encontraremos el texto "mamá".
        • Ejemplo. Puede buscar palabras duplicadas. Busque una palabra que aparezca en el texto cinco veces: "(<*>)*\1*\1*\1*\1".
      • El texto reemplazado, en algunos casos, hereda el formato del texto anterior.
        • Ejemplo. Si busca "(?) X" y lo reemplaza por "\ 1Y", cuando el primer carácter del texto encontrado sea un subíndice y el segundo no, después del reemplazo, el segundo se convertirá en subíndice. Buscar "X (?)" Y reemplazarlo con "Y \ 1" no resulta en herencia.
    • El carácter especial "!" al buscar con comodines:
      • Úselo con cuidado. Es demasiado global y hay muchas excepciones, que son muy difíciles de prever.
      • Solo se encontrarán caracteres simples.
        • Ejemplo. La búsqueda del patrón "[! A]" no encontrará objetos gráficos, hipervínculos, etc.
        • Ejemplo. Una búsqueda de tabla de texto sin formato utilizando el patrón "Casa [! ^ 12] (1;)" encontrará el texto desde la palabra "Casa" hasta el final de la celda (el mismo resultado se obtiene al buscar hacia atrás utilizando el patrón "Casa * ").
    • Cuando busque con comodines, intente no utilizar el carácter de final de párrafo "^ 13" junto con paréntesis. Se ha notado un comportamiento irregular.
      • Ejemplo. Si intentamos reemplazar dos puntos al final de un párrafo con uno, es decir, buscando "([!.].). (^ 13)" y reemplazarlo con "\ 1 \ 2", luego en el párrafo con la lista obtenemos un error interesante.
    • Al buscar y reemplazar con paréntesis (comodines), la búsqueda debe repetirse dos veces cuando la parte reemplazada no está al final del texto de búsqueda.
      • Ejemplo. Al buscar "(X) + (X)" y reemplazarlo con "\ 1 = \ 2" en el texto "X + X + X + X + X" obtenemos "X = X + X = X + X" . Aquellos. la búsqueda debe repetirse dos veces o, realizando la búsqueda paso a paso, ajustar el área de búsqueda restante.
    • Las búsquedas con comodines no funcionan con campos. Es decir, es imposible encontrar texto dentro del campo con su ayuda.
    • Utilice con precaución patrones de búsqueda de comodines largos y complejos. Existen combinaciones de "plantilla de búsqueda + documento procesado por él" que cuelgan Word con fuerza. Es decir, en un documento todo funciona, pero en el otro se cuelga. Cuanto más simple, mejor.
  • Optimización de reemplazos a granel
    • Manera lenta, por extraño que parezca:
      Range.Find.Execute Reemplazar: = wdReplaceAll
    • Una forma rápida, especialmente para grandes volúmenes:
      Range.Find.Execute Reemplazar: = wdReplaceNone
      Si Range.Find.Found Entonces
      Range.Collapse wdCollapseStart
      Range.Find.Execute Reemplazar: = wdReplaceAll
      Terminara si
    • Auto-descarga. Algunos parámetros de búsqueda, Word cambia de forma independiente. Hay parámetros interdependientes en los que un parámetro se restablece cuando se cambia el otro. Hay opciones que Word restablece cuando realiza una búsqueda. Por lo tanto, en caso de reemplazos masivos, le aconsejo que prescriba todos los parámetros para cada reemplazo.
  • Búsqueda, miscelánea
    • Al buscar un estilo, vemos una falla interesante en el párrafo que está frente a la tabla. El párrafo tiene un estilo. Al mirar hacia atrás, todo está bien. Pero al buscar hacia adelante, la búsqueda primero encuentra un párrafo sin una marca de párrafo, y cuando continúa buscando, encuentra una marca de párrafo. Qué es a través del diálogo, qué es la macro.
    • Al reemplazar texto, los marcadores se eliminan o se dañan:
      • Los marcadores que se incluyen en el texto reemplazado se eliminan.
      • Se elimina el marcador, cuyo área coincide con el texto reemplazado.
      • Un marcador que cubre parte del texto se corta y se empuja fuera del texto.
      • Conserva un marcador de puntos en el borde del texto.
    • Continúe siempre buscando desde el final del bloque encontrado. Por ejemplo, desde el final de un párrafo, no desde el principio del siguiente. De lo contrario, existe una alta probabilidad de que se produzcan bucles, especialmente en las tablas.
    • La búsqueda sin formato de solo texto (negrita, cursiva, etc.) comienza desde el borde del área seleccionada en la dirección de la búsqueda. La región se colapsa previamente en la dirección de la búsqueda.
    • La búsqueda no funcionará si el texto que está buscando ocupa toda el área de búsqueda.
      • Ejemplo. En el área R que contiene el texto R.Text = "Ivan", la búsqueda de R.Find.Text = "Ivan" no funcionará.
    • En la tabla, para buscar el último párrafo de la celda de la tabla usando Selección, debe tomar el área del párrafo sin el último carácter. El motivo es claramente visible si ejecuta el código: Rango.de.Célula.Caracteres.Último.Seleccionar
    • Tenga en cuenta al buscar caracteres que contengan más de un carácter. Como el carácter del final de la celda de la tabla (13 + 7), hipervínculos, etc.
      • Ejemplo. La búsqueda por patrón "Vasya [!.]" No encontrará la palabra "Vasya" al final de una celda de la tabla o antes de un hipervínculo.
    • Si el área de búsqueda cubre parte del hipervínculo, la búsqueda se realizará en todo el hipervínculo. Es deseable alinear el área de búsqueda con el inicio / final del carácter (Personaje). Por ejemplo, así:
      Range.SetRange Start: = Range.Characters.First.Start, End: = Range.Characters.Last.End
    • Al buscar en el área seleccionada (Selección), tenga en cuenta que la tabla no puede seleccionar: drenaje + celda.
      • Ejemplo. El siguiente código seleccionará todo, desde el principio de la fila de la celda de la tabla hasta el final del documento:
        Rango (posición en una celda de la tabla, posición al final del documento).
    • Find.Execute a veces devuelve False mientras la búsqueda es exitosa y Find.Found = True. Aquellos. es más seguro escribir así:
      Rango.Encontrar.Ejecutar
      Si Range.Find.Found = True Entonces ...
    • Como macro, puede implementar la opción de búsqueda "Seleccionar todo ..." para un estilo, fuente u otro formato mediante el comando Seleccionar formato similar.
      • Ejemplo. Seleccione todas las apariciones del estilo Título 1:
        Selection.Find.Style = "Título 1"
        Selección.Encontrar.Ejecutar
        Application.Run "SelectSimilarFormatting"
    • El carácter especial ^ d (también conocido como ^ 19 - el comienzo del campo, también hay ^ 21 - el final del campo) le permite buscar tanto cualquier campo como campos de cierto tipo. Además, puede buscar, seleccionar y procesar campos obligatorios estrictamente filtrados.
      • Un ejemplo de procesamiento de campos de tipo AUTOTEXT:
        • Activar el modo de visualización del código de campo (Alt + F9)
        • Abra la ventana de búsqueda avanzada (Ctrl + F, Ctrl + H)
        • En el campo "Buscar", ingrese el texto: ^ d ^ wAUTOTEXT ^ w
        • Activamos la bandera "Seleccionar todos los elementos ..."
        • Busquemos. Como resultado, se resaltarán todos los campos de tipo AUTOTEXT. Además, no son los fragmentos obligatorios del código de campo los que están resaltados, ¡sino los campos completos!
        • El grupo de campos seleccionado se puede cortar, copiar, eliminar, formatear, etc.
        • Puede volver al modo de visualización de valores de campo (Alt + F9). En este caso, los campos permanecerán seleccionados.
    • Si expone Selection.Find.Wrap = wdFindContinue, luego, al buscar sobre el borde (principio / final del documento), este parámetro se reiniciará automáticamente y se convertirá en wdFindStop.

Fuente

  • La propiedad Range.Font no incluye información sobre espacios u otros caracteres en blanco en el alcance de Range si el área contiene caracteres visibles.
  • Cambiando cualquier parámetro de fuente Range.Font, espacios y otros caracteres vacíos que son los últimos en el Range, después del carácter visible, los parámetros de fuente no cambiarán.

TEXTO OCULTO (Fuente.Oculto)

  • Cuando el texto oculto es visible (ShowHiddenText = True), se comporta como texto normal.
  • Cuando el texto oculto no es visible (ShowHiddenText = False), entonces:
    • El texto oculto está excluido de las propiedades:
      Párrafos
      Rango.Caracteres
      Rango.Texto
    • El texto oculto permanece en las propiedades:
      Range.Start
      Range.End
      Rango.Fuente
      Tipo de selección
  • Al alternar la visibilidad del texto oculto (ShowHiddenText), verifique y ajuste el Rango. Es aconsejable evitar una situación en la que el texto esté oculto y el borde del área esté dentro del texto oculto.

MESAS

  • El comando Seleccionar para seleccionar columnas en una tabla funciona de manera diferente cuando la tabla está en una página y cuando está en varias páginas.
  • Si el área está contraída y está al principio del párrafo inmediatamente después de la tabla, entonces esta área tiene Range.Tables.Count = 1. Por tanto, es mejor comprobar la presencia en la tabla con la función Range.Information (wdWithInTable).
  • Si la selección se encuentra inmediatamente después de la última celda de la fila de la tabla, entonces:
    Selection.Cells.Count = 1
    Selection.Range.Cells.Count = 0
  • Tenga cuidado al usar comandos de párrafo en tablas con celdas combinadas. Por ejemplo: Unidad Selection.Move: = wdParagraph, Count: = 1... Es posible realizar un bucle durante la búsqueda.
  • Es posible que no sea posible insertar una nueva columna en la tabla debido al error "Ancho máximo excedido". Por lo tanto, al crear una tabla con una macro, es mejor establecer las columnas en un ancho fijo y, después de completar, puede habilitar el ajuste automático, etc.

ESTILOS

  • Es deseable excluir espacios de los nombres de estilo generados por el usuario. Por ejemplo, si hay espacios, la función Seleccionar todo del estilo falla. Esto no se aplica a los estilos en línea.
  • Los nombres de estilo en línea son específicos de la configuración regional y están escritos en el idioma de la interfaz. Por ejemplo, el estilo "Título 1" en Palabra rusa, este es "Encabezado 1" en inglés. En macros, para estilos en línea, los números wdBuiltinStyle deben usarse para mejorar la compatibilidad.
  • Trabaje con cuidado con los estilos no utilizados (Style.InUse = False). Aunque estos estilos se encuentran en la colección del documento (Document.Styles), aún no se relacionan con el documento, es más correcto considerarlos como un grupo separado. Word realiza un seguimiento de dichos estilos, e incluso una simple lectura mediante una macro de propiedades (no todas, pero por ejemplo Style.Description) de un estilo no utilizado, provoca la conexión automática de este estilo al documento y la reconfiguración en cadena de otros estilos. Como resultado, el documento se cambiará (Document.Saved = False), los enlaces de sus estilos (BaseStyle, propiedades LinkStyle) se reconfigurarán de acuerdo con algún algoritmo interno de Word, pueden aparecer cambios en el formato del documento.
  • El parámetro de estilo InUse significa que el estilo está conectado al documento. Esto no significa que el estilo se esté utilizando en este momento, fue suficiente aplicar el estilo antes. Además, puede ser un estilo creado o modificado en este documento.
    • Ejemplo. Si aplica el estilo de título estándar a su documento y luego elimina todos los estilos que tiene, el parámetro InUse del estilo de título sigue siendo Verdadero.
  • Asigne el estilo a través del nombre, no a través del objeto.
    • Error (fallará si el nombre del estilo es "005", es decir, algún número en forma de texto):
      Selection.Find.Style = MyStyle
    • Derecha:
      Selection.Find.Style = MyStyle.NameLocal
  • En un estilo de tabla mediante programación (mediante una macro), no puede establecer:
    • Alineación vertical del texto de la celda.
    • Los valores de campo de celda predeterminados (para toda la tabla) (TopPadding, etc. cambian los campos de todas las celdas de estilo a la vez).
    • Opción "Como en toda la tabla" para campos de celda.

FRAGMENTO SELECCIONADO

  • El objeto Selection es único, al igual que muchas de sus propiedades y métodos. Por ejemplo, en el objeto Rango, el rango de herramientas para trabajar con el área es significativamente inferior a Selección.
  • La ventaja indudable de Selection es que es posible trabajar con varios fragmentos seleccionados en diferentes lugares del documento. A diferencia de Range, donde solo se puede procesar un fragmento de documento continuo.
  • Intente utilizar la selección lo menos posible en las macros, especialmente en las complejas. Solo cuando sea necesario. La razón es el cambio en la Selección, muchas operaciones automáticas de Word están vinculadas. El uso de Selección, en el mejor de los casos, ralentizará enormemente la macro, en el peor de los casos, provocará un error, bloqueo.
  • No confunda las mismas propiedades y métodos para Object.Properties y Object.Range.Properties. Por ejemplo, las propiedades Selection y las mismas propiedades Selection.Range pueden diferir significativamente.
  • El comando ActiveDocument.Styles.Add no funciona para algunos Selection.Types (por ejemplo, el lienzo está seleccionado).
  • Cuando Selection.Range está al principio de un párrafo, el comando Selection.Collapse wdCollapseStart a veces mueve el cursor al final del párrafo anterior.
  • Las propiedades de selección se refieren a la parte activa del documento.
    • Ejemplo:
      ActiveDocument.StoryRanges (Índice: = wdFootnotesStory) .Seleccionar
      Selection.Find.Execute "buscando algo y encontrando ...
      "hasta el siguiente comando, la selección está en FootnotesStory
      " ERROR:
      ActiveDocument.Range (Selection.Start, Selection.End) .Select
      "desconocido seleccionado en la parte principal del documento (wdMainTextStory)
      " DERECHA:
      Selección.SetRange Selección.Start, Selection.End
  • Sin usar un búfer, la selección se puede copiar y mover dentro del documento usando los comandos CopyText y MoveText, respectivamente.

OBJETOS

  • Comprobación de objeto:
    • El objeto no es nada = verdadero si el objeto no está definido.
    • IsObjectValid (objeto)<>Cierto si el objeto ha sido eliminado.
      • Recomiendo usar esta verificación al agrupar objetos en un bucle For Each.
      • Además de los remotos, este control también detecta objetos dañados (también los hay).
  • Comprobación del tipo de objeto:
    • Si TypeOf Object es Type, entonces
  • Nombre del tipo de objeto:
    • S = VBA.TypeName (Objeto)
  • Escribiendo una propiedad de un objeto por su nombre:
    • CallByName Selection.Find, "Text", vbLet, "chair"
    • Término análogo: Selection.Find.Text = "silla"
  • Leer una propiedad de un objeto por su nombre:
    • S = CallByName (Selection.Find, "Text", vbGet)
    • Analógico: S = Selection.Find.Text
  • Llamar a un método de un objeto por su nombre:
    • CallByName Selection.Find, "Execute", vbMethod, "chair", True
    • Término análogo: Selección.Encontrar.Ejecutar "silla", Verdadero
  • Al eliminar un párrafo, elimina los dibujos, cuadros de texto y otros objetos adjuntos a él.
  • Cuando trabaje con dibujos (objetos Shape e InLineShape), debe tomar en serio la versión de Word. El resultado del trabajo de un mismo código, en diferentes versiones de Word puede diferir significativamente.
  • Los objetos de tipo Shape, no se enlazan a un párrafo, sino a un lugar en un párrafo. ShapeRange funciona en consecuencia.
    • Ejemplo. Un salto de página divide un párrafo en dos partes (no dos párrafos). La primera parte estará en una página, la segunda en otra. Y las imágenes se pueden insertar tanto en una página como en otra, con referencia al mismo párrafo. El signo de "salto de columna" funciona de la misma manera.
  • El parámetro Anchor a menudo se ignora al crear una forma. Cortar y pegar Shape ayuda. En este caso, el ancla siempre coincide con el punto de inserción, lo que permite que la forma se ancle incluso a un carácter.
    • Un ejemplo de cómo insertar y anclar una forma de corazón:
      Dim R como rango, SH como forma
      Establecer R = Selection.Range "ubicación de anclaje
      R.Collapse wdCollapseStart
      Establecer SH = ActiveDocument.Shapes.AddShape (msoShapeHeart, 0, 0, 100, 100, R) "buggy
      Si R.Start<>SH.Anchor.Start Then "comprobar y corregir
      SH.Anchor.Cut
      R.Paste
      Establecer SH = R.ShapeRange (1)
      Terminara si
  • Al colocar la forma en la página, al cambiar las propiedades superior e izquierda, utilice variables como Variante. De lo contrario, la posición de la forma puede saltar. Por ejemplo, cuando se usa el tipo Único.

FORMULARIO, PANEL, MENÚ

  • Deje siempre el parámetro TakeFocusOnClick para elementos de formulario no modales (ShowModal = False) True. De lo contrario, el formulario no recibirá el foco cuando esté inactivo o perderá el foco cuando el elemento del formulario invoca otro cuadro de diálogo.
  • Al crear elementos de la barra de herramientas (botones, menús, etc.), se ignora el parámetro Temporal en el comando CommandBarControls.Add. Sin embargo, temporal siempre es falso.

OTRO

  • Al verificar el código de carácter, tenga en cuenta que la función AscW () puede devolver un número negativo ya que el rango Unicode es de -32768 a 65535.
    • Por ejemplo, debe verificar que el código de carácter sea de 0 a 32:
      si AscW (S)<= 32 then " ошибка!
      si AscW (S)> = 0 y AscW (S)<= 32 then " правильно
  • Complemente los comandos Copiar, Cortar, Pegar y otros que funcionan con el portapapeles con el comando DoEvents. De lo contrario, puede producirse el error "no hay datos en el búfer o no está en el formato correcto". Especialmente importante cuando se usa un búfer en un bucle.
  • Cuando abre un documento en modo de solo lectura, aún pueden producirse cambios en el documento. En este caso, la propiedad Document.Saved será igual a False. Esto se debe a la configuración del documento y de Word. Por ejemplo, si la opción "actualizar enlaces automáticamente al abrir" está activa.
  • La colección Application.Documents también incluye documentos ocultos que no se pueden activar (ActiveDocument).
  • Tenga en cuenta que Range.Start y Range.Characters.First.Start no siempre son iguales. Por ejemplo, cuando Range.Start está dentro de una referencia cruzada, hipervínculo, etc.
  • Incluso cuando el rango está contraído Range.Characters.Count = 1. Por lo tanto, la longitud cero de la región debe comprobarse de la siguiente manera:
    Si Range.Start = Range.End Then ...
  • No confunda Len (Range.Text) con Range.Characters.Count. Un personaje puede contener varios personajes, lo que significa que una situación es posible cuando: Len (Rango.Texto)> Rango.Caracteres.Cuenta
  • La función InRange devolverá False si la región que se está comprobando está contraída y está al final de la región principal. Pero devolverá True si el área contraída está al principio. Esa lógica complicada, no está escrita en la documentación.
  • Application.Run no devuelve parámetros Variant. Establezca el tipo de forma explícita.
    • Ejemplo de error:
      Sub AAA ()
      Dim V As Variant "debe escribirse As Long
      Application.Run MacroName: = "BBB", VarG1: = V
      MsgBox V
      End Sub
      Sub BBB (ByRef V)
      V = 123
      End Sub
  • InsertParagraphBefore / After a veces no funciona. Reemplazarlo con: InsertBefore Text: = vbCr ayuda.
  • El área con el último carácter del documento se comporta de forma no estándar, lo que puede dar lugar a un bucle sin fin.
    • Ejemplo:
      ActiveDocument.Range.Characters.Último.Seleccionar
      Selection.Collapse Direction: = wdCollapseEnd "falla aquí
  • La instrucción With ... End With es lo mismo que declarar y liberar una nueva variable. El nombre de la variable parece estar vacío, y para acceder a sus propiedades basta con imprimir un punto.
    • Ejemplo de error:
      Dim C como celda, i tan largo
      Con selección
      Para i = 1 a Selection.Cells.Count "hay varias celdas
      .Cells (i) .Range.Text = "X"
      Siguiente yo
      Terminar con
    • Ejemplo corregido:
      Dim C como celda, i tan largo
      Con Selection.Cells
      Para i = 1 para .contar
      .Item (i) .Range.Text = "X"
      Siguiente yo
      Terminar con
  • Vaya al principio de la página N-ésima del documento:
    ActiveDocument.GoTo (wdGoToPage, wdGoToAbsolute, N) .Seleccionar
    o
    Selection.GoTo (wdGoToPage, wdGoToAbsolute, N)
  • Cuando se ejecutan varias aplicaciones de Word al mismo tiempo con el mismo complemento, no puede ejecutar el comando Document.Save en ese complemento y otras aplicaciones de Word lo bloquearán. Es decir, si almacena algunos datos en el cuerpo del complemento, por ejemplo, en variables (Variables), no podrá guardarlos. Quizás esto sea bueno, pero si necesita guardar, use un archivo ini, registro, etc.


¿Te gustó el artículo? Compártelo