Tengo un documento de Word que es un libro de reglas. Para realizar la enumeración, para los diferentes niveles de las reglas (regla 1, apartado 3, artículo 4, inciso b, inciso 1, etc.) se utilizan diferentes títulos. Esto funciona muy bien.
A veces, el subartículo c introduce una lista que contiene varios subartículos. Hasta ahora, todo bien.
Pero a veces, dicho subartículo c es la última línea de la página, lo que significa que la lista de subsubartículos comienza en la primera línea de la página siguiente. Eso no es bueno.
Tampoco puedo incluir los Títulos 4, 5 y 6 ensiempre Continuar con el siguiente, porque entonces la Rúbrica 5 tambiénseguir con el siguientesi el siguiente párrafo no es una lista, pasar demasiado texto a la página siguiente y desperdiciar espacio.
Mi solución hasta ahora ha sido echar un vistazo a todas las partes inferiores de todas las páginas y agregar manualmente "continuar con el siguiente" a la configuración del "párrafo" (en holandés es "Alinea") si las entiendo. Pero como el documento tiene más de 400 páginas, esto no es sostenible.
Encontré una macro en alguna parte (¡gracias y felicitaciones!) que me ayuda un poco:
Sub ColonParaEnd_SetKeepWithNext()
'=========================
'Macro created 2010 by Lene Fredborg, DocTools - www.thedoctools.com
'THIS MACRO IS COPYRIGHT. YOU ARE WELCOME TO USE THE MACRO BUT YOU MUST KEEP THE LINE ABOVE.
'YOU ARE NOT ALLOWED TO PUBLISH THE MACRO AS YOUR OWN, IN WHOLE OR IN PART.
'=========================
'The macro iterates through all paragraphs in the active document
'If a paragraph ends with a colon, Keep with next is applied
'=========================
Dim oPara As Paragraph
Dim n As Long 'used as counter
n = 0
'Iterate though all paragraphs
For Each oPara In ActiveDocument.Paragraphs
With oPara
'If a colon is found immediately before the paragraph mark, Chr(13), apply Keep with next
'In case of end of a table cell, the end of cell marker is Chr(13) & Chr(7) - alså handle this
If Right(.Range.Text, 2) = ":" & Chr(13) Or Right(.Range.Text, 3) = ":" & Chr(13) & Chr(7) Then
.Range.ParagraphFormat.KeepWithNext = True
n = n + 1
End If
End With
Next oPara
MsgBox "Finished." & vbCr & "Keep with next applied to " & n & " paragraph(s).", vbOKOnly, "Apply Keep With next"
End Sub
Por lo tanto, me preguntaba si los chicos inteligentes no podrían ayudarme con una macro inteligente (posiblemente basándose en la que cité). Lo que estoy buscando:
- Si al Título 4 le sigue el Título 5, haga que esta instancia del Título 4 "se mantenga con el siguiente".
- Si al Título 5 le sigue el Título 6, haga que esta instancia del Título 5 "se mantenga con la siguiente".
- Si al Título 6 le sigue el Título 7, haga que esta instancia del Título 6 "se mantenga con la siguiente".
¡Gracias de antemano por tu conocimiento!