Removendo comentários do VBA - Tecnologias

Tecnologias

Assuntos diversos ligados à tecnologia.

Syndication

Receive Email Updates



Removendo comentários do VBA

Quando escrevo algum código em VBA, comento ele todo. Praticamente cada linha possui um comentário explicando o que estou fazendo ali e porque. Isso facilita a minha vida quando preciso adaptar algo depois de um tempo e quando tenho de interromper  a codificação para retomar mais tarde.

Mas qual o sentido de entregar um código todo comentado? Se o cliente deseja um código todo mastigadinho (ensinando a fazer), precisa pagar um adicional para isso, ainda que a grande maioria dos meus códigos seja desenvolvida com os comentários.

Agora, se o cliente não deseja pagar pelos comentários (o que sai caro), o que fazer para removê-los da versão a ser entregue? Apagar linha por linha é cruel. Já fiz projetos com mais de 40.000 linhas, manualmente seria impossível apagá-las.

Qual a solução então? Usar uma macro para isso. Pois aqui está ela:

Option Explicit
 
Sub SemComentarios()
    
Dim n               As Long
Dim i               As Long
Dim j               As Long
Dim k               As Long
Dim LineText        As String
Dim ExitString      As String
    
    For i = 1 To ActiveWorkbook.VBProject.VBComponents.Count
        With ActiveWorkbook.VBProject.VBComponents(i).CodeModule
            For j = .CountOfLines To 1 Step -1
                LineText = Trim(.Lines(j, 1))
                If LineText = "ExitString = " & _
                """" & "Ignora comentários neste módulo" & """" Then
                Exit For
            End If
            n = InStr(1, LineText, "' ")
            Select Case n
            Case Is = 0
            Case Is = 1
                .DeleteLines j, 1
            Case Is > 1
                .ReplaceLine j, Left(LineText, n - 1)
            End Select
        Next j
    End With
Next i
 
ExitString = "Ignora comentários neste módulo"
 
End Sub

Published terça-feira, 28 de setembro de 2010 2:33 by Paleo

Filed under:

Comments

No Comments

Leave a Comment

(required) 
(required) 
(optional)
(required)