2009-11-24 9 views
5

Supongamos que tengo una referencia Range en Word VBA, y quiero dividirla en rangos más pequeños donde el formato (fuente, color, etc.) es idéntico. Por ejemplo, si comienzo con:MS Word VBA: ¿determina la extensión de "estilo ejecutado"?

El rápida zorro marrón saltó sobre el perezoso perro.

... entonces me gustaría volver 5 rangos, de la siguiente manera:

El

rápida

zorro marrón saltó sobre el

flojo

perro.

Tenía la esperanza de que hubiera una manera incorporada de hacer esto en VBA (e incluso tener una memoria fantasma del uso de dicha instalación), pero no puedo encontrar nada.

Podría hacer lo que tengo que hacer en el código, pero algo que funciona de forma nativa sería mucho (mucho) más rápido.

[En el código, utilizaría el hecho de que, por ejemplo, oRange.Font.Bold devolverá "indefinido" si el rango contiene una mezcla de negrita y negrita, por lo que podría usar esto repetidamente para descubrir la extensión del uniforme rangos. Pero estoy bastante seguro de que la Palabra se hace esto bajo el capó, así que si alguien puede hacer estallar esa capucha para mí, te agradecería]

EDITAR:. Eliminado ejemplo más complejo que el procesador de HTML Stackoverflow no le gustó.

Respuesta

5

Realmente no se puede hacer esto en VBA ya que el OM no admite ejecuciones (sin embargo, OOXML sí lo hace). Lo mejor que probablemente podría hacer es obtener las wdUnits de wdCharacterFormatting y crear un bucle para crear rangos, extraer sus propiedades y luego destruirlas hasta que termine el bucle. Usted probaby sería empezar con algo como:

Dim sel As Selection 
Set sel = ActiveWindow.Selection 
Dim selRange As Range 
Set selRange = selRange.Next(wdCharacterFormatting) 

para obtener el inicio y el final de la próxima serie de formato, como selRange.Start/selRange.End, así como propiedades como selRange.Font.Name/ selRange.Bold.

+0

Perfecto, eso era exactamente lo que estaba buscando. Sabía que había visto algo así en alguna parte. ¡Gracias! –

+0

Al menos en Word 2013, esto termina emparejando cambios de párrafo que en realidad no cambian el formato del carácter. Terminé analizando Word XML para buscar propiedades de ejecución y párrafo ('' y ''), lo que respondió a mi pregunta de "¿este documento tiene algún estilo aplicado?" –

Cuestiones relacionadas