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