viernes, 17 de agosto de 2012

Macro en VB para poner comillas dobles en un texto

Aquí dejo el código en VB de un MACRO para MS Word, que pone comillas dobles ( " ) al principio y al final de los renglones de un texto seleccionado:


Sub Comillas()
'
' Descripcion: Macro que inserta comillas dobles al final de cada renglon
' Autor: Ing. Moises Alejandro Caballero
' Agosto, 2012

    f = Selection.End

    temp = 0
    semueve = 0
    
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Do While semueve <= f
        Selection.TypeText Text:=""""
        Selection.MoveEnd Unit:=wdLine, Count:=1
        semueve = Selection.End
        temp = Selection.End - Selection.Start
        Selection.MoveRight Unit:=wdCharacter, Count:=1
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
                
        Selection.TypeText Text:=""""
        Selection.MoveEnd Unit:=wdLine, Count:=1
        temp = Selection.End - Selection.Start
        If temp > 1 Then
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend
            Selection.Delete
            Selection.MoveLeft Unit:=wdWord, Count:=1
            Selection.MoveLeft Unit:=wdCharacter, Count:=1
            Selection.TypeText Text:=""""
        End If
        Selection.MoveRight Unit:=wdCharacter, Count:=1
    Loop
End Sub


Tiene un detalle, cuando la ultima palabra del renglón se le asignan las comillas y baja la palabra y esta termina con (. , ; ) estos últimos símbolos los considera una palabra y pone las comillas entre estos y la ultima palabra provocando un error en la asignación de las comillas. 


No hay comentarios:

Publicar un comentario