This Blog

Syndication

Search

Tags

News

Community

Email Notifications

Archives

Grupos de Usuários

Blogs MVPs Brasil

Sites

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 Tue, Sep 28 2010 2:33 by paleo
Filed under: