Hola a todos y perdón por mi inglés: tengo esta macro que agrega un separador de estilo y funciona bien, excepto que agrega un espacio en blanco delante del párrafo. ¿Cómo podría modificar la macro para que no la agregue, o si la agrega la elimine después?
Sub SeparadordeEstilos()
With Selection
.InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).Range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Editado:
Muchas gracias también, Charles, y mis disculpas a todos por no explicar todos los detalles. Necesito, en una lista esquematica multinivel, dos tipos de párrafos con la misma numeración. Algunos con estilo de fuente en negrita y que aparecen en la tabla de contenido y otros con fuente normal que no aparecen en el TOC. Entonces, he creado dos estilos,PLL Nivel 2con negrita que aparece en el TOC yPLL Nivel 2 notdc, sin negrita, que no aparece en el TOC que se aplica automáticamente con el separador de estilos al ejecutar la macro que describo en la pregunta. Es la única solución que he encontrado para hacerlo, especialmente por el requisito de numeración continua.
Todo funciona bien excepto el espacio en blanco. Este espacio en blanco queda muy mal en el documento, no le da un toque profesional, al contrario, le da una apariencia descuidada.
Por lo tanto necesito una alternativa o poder eliminar el espacio en blanco.
Aquí hay undocumento de muestracon el problema. Pensé que la numeración consecutiva funcionaba bien porque la vi con Mostrar todo habilitado, pero si lo desactivo (Mostrar todo), tampoco funciona y establece una numeración diferente.
Editar 2
Respuesta1
¡Quieres algo de espacio, como en el carácter de espacio, entre tus dos párrafos!
Su código, cuando se ejecuta al final de un párrafo, antes de la marca de párrafo, agrega unseparador de estiloy un espacio con el espacio en el nuevo estilo.
Cuando se omite la línea .insertBefore vbCr
, como sugiereReddy, y se ejecuta al final de un párrafo, agrega el separador de estilo y un espacio, eliminando la marca del párrafo actual y colocando el siguiente párrafo en el nuevo estilo para que parezca un solo párrafo usando dos estilos de párrafo.
Es probable que se necesite espacio para aplicar el estilo. Ciertamente es necesario en segunda instancia separar el texto del primer párrafo del segundo.
¿De verdad quieres eliminar ese espacio?
Aquí está su macro revisada:
Sub InsertStyleSeparator()
' Use at end of paragraph just before paragraph mark.
With Selection
' .InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Tenga en cuenta el comentario que agregué: utilícelo al final del párrafo, no al principio.
Aquí está tudocumento de muestra, con la macro.
Cuando se usa con el separador de estilo, la parte que se agrega al párrafo no tiene número propio. Actúa, visualmente, como parte del párrafo del que está separado por el separador de estilo.
Respuesta2
vbCr
es una nueva línea. Esta línea de código .InsertBefore vbCr
inserta una nueva línea antes de su estilo. Elimínelo para evitar tener un espacio en blanco antes del párrafo.