Hay alguna forma de imprimir o pegar el código de VBa en Word con formato y a color.

Copiar el código de VBA en Word. Así como se muestra en la imagen para poder imprimirlo y agregarle imágenes de los formularios. Para hacer un manual de código de VBA.

1 Respuesta

Respuesta
1

H o l a:

El editor de VBA pone en automático los colores según las "palabras reservadas" que tiene definidas, por lo que observo son algunas palabras las que pone de color azul y lo que tienes como comentario lo pone en color verde.

Entonces he diseñado algo para poner todo el código de VBA en una hoja de excel, respetando las sangrías y el color verde; en cuanto a las palabras reservadas, estoy poniendo en una lista las palabras más utilizadas.

Una vez en excel los códigos, los puedes copiar y pegar en excel y te respetará los formatos.


Sub ExportarModulos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set h1 = Sheets("Hoja5")
    h1.Cells.Clear
    With Application.VBE.ActiveVBProject
        For i = 1 To .VBComponents.Count
            fname = ThisWorkbook.Path & "\" & "modulo.txt"
            Select Case Left(.VBComponents(i).Name, 6)
                Case "Módulo", "UserFo"
                    .VBComponents(i).Export Filename:=fname
                    Workbooks.OpenText Filename:=fname, _
                        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, _
                        TextQualifier:=xlNone, ConsecutiveDelimiter:=False, _
                        Tab:=False, Semicolon:=False, Comma:=False, Space:=False, _
                        Other:=False, FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True
                    Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Copy _
                    h1.Range("A" & h1.Range("A" & Rows.Count).End(xlUp).Row + 2)
                    ActiveWorkbook.Close False
            End Select
        Next
    End With
    '
    palabras = Array("For", "Next", "Do", "Loop", "While", "GoTo", _
                     "If", "End", "Then", "Else", "True", "False", "Sub", "Function", "To", _
                     "With", "Call", "Set", "Get", "Each", "Dim", "As", "String", _
                     "Select", "Case", "CStr", "Until", "Step", "LBound", "UBound", _
                     "Debug", "Print", "Private", "Integer", "Boolean", "Long", "On", _
                     "Error", "Resume")
    For i = 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
        tiene = InStr(1, h1.Cells(i, "A"), "'")
        If tiene > 0 Then
            h1.Cells(i, "A").Characters(Start:=tiene, _
                Length:=Len(h1.Cells(i, "A"))).Font.ColorIndex = 10
        Else
            For j = LBound(palabras) To UBound(palabras)
                tiene = InStr(1, h1.Cells(i, "A"), palabras(j))
                If tiene > 0 Then
                    h1.Cells(i, "A").Characters(Start:=tiene, _
                        Length:=Len(palabras(j))).Font.ColorIndex = 32
                End If
            Next
        End If
    Next
    '
    Application.ScreenUpdating = True
    MsgBox "Terminado"
End Sub

Antes de ejecutar la macro revisa que tengas la referencia:

Microsoft Visual Basic For Applications Extensibility 5.3

Entra al menú de VBA, Herramientas, Referencias:


También tienes que tener activa la opción "Confiar en el acceso al modelo de objetos de proyectos de VBA"; para ello entra Opciones de excel, Centro de confianza, Configuración del centro de confianza, Configuración de macros, Activa la casilla, Aceptar.


:)
;) 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas