FRIKISMO INFORMÁTICO, PT. 1
Si siempre has soñado con una macro en VBA para Word que añada un punto al final de aquellos párrafos que no lo lleven, salvo en el caso de determinados estilos que tú definas y en el caso de todos los párrafos que comiencen con la palabra "artículo"... ¡Tachán!
Option Explicit
Public Sub puntfinal()
Dim mparraf As Paragraph
Dim mitext As String
Selection.HomeKey unit:=wdStory 'principio documento
For Each mparraf In ActiveDocument.Paragraphs 'recorremos todos los párrafos
If mparraf.Style = "MD_Titulo1" Or mparraf.Style = "MD_Titulo2" Then 'or ......
'estilos que no recorremos o al raves sin else MsgBox (mparraf.Style)
Else
mparraf.Range.Select
mitext = RTrim(Replace(Selection.Text, Chr(13), "")) 'eliminamos espacios y retorno carro
If mitext = "" Or Right(mitext, 1) = "." Then
' es un retorno de carro sin texto o con espacios o tiene punto final
Else
Selection.EndKey unit:=wdLine 'final párrafo
Do While True 'nos movemos por los posibles espacios en blanco al final párrafo
Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
If Selection.Text = Space(1) Then 'continua bucle espacios blanco finales
Selection.MoveLeft unit:=wdCharacter, Count:=1
Else 'caracter no espacio, no estariamos aquí, salimos bucle
Selection.MoveRight unit:=wdCharacter, Count:=1 'movemos derecha
Exit Do
End If
Loop
Selection.TypeText Text:="." 'añadimos punto
End If
End If
Next
Selection.HomeKey unit:=wdStory 'principio documento
Dim mparraf As Paragraph
Dim mitext As String
Selection.HomeKey unit:=wdStory 'principio documento
For Each mparraf In ActiveDocument.Paragraphs 'recorremos todos los párrafos
If mparraf.Style = "MD_Titulo1" Or mparraf.Style = "MD_Titulo2" Then 'or ......
'estilos que no recorremos o al raves sin else MsgBox (mparraf.Style)
Else
mparraf.Range.Select
mitext = RTrim(Replace(Selection.Text, Chr(13), "")) 'eliminamos espacios y retorno carro
If mitext = "" Or Right(mitext, 1) = "." Then
' es un retorno de carro sin texto o con espacios o tiene punto final
Else
Selection.EndKey unit:=wdLine 'final párrafo
Do While True 'nos movemos por los posibles espacios en blanco al final párrafo
Selection.MoveLeft unit:=wdCharacter, Count:=1, Extend:=wdExtend
If Selection.Text = Space(1) Then 'continua bucle espacios blanco finales
Selection.MoveLeft unit:=wdCharacter, Count:=1
Else 'caracter no espacio, no estariamos aquí, salimos bucle
Selection.MoveRight unit:=wdCharacter, Count:=1 'movemos derecha
Exit Do
End If
Loop
Selection.TypeText Text:="." 'añadimos punto
End If
End If
Next
Selection.HomeKey unit:=wdStory 'principio documento
End Sub