La macro, genera una copia del mismo eliminando todas las macros, modulos y formularios.
Al nombre de la copia, se le antepone "Sin macros_" + Fecha + Hora
Sub EliminarMacrosLibro()
'
' Esta macro elimina todo el código VBA de la copia del libro seleccionado
' ------------------------------------------------------------------------
'
Application.ScreenUpdating = False
ChDir ThisWorkbook.Path
Archivo = Application.GetOpenFilename _
("Excel (*.xlsm; *.xls ), *.xlsm;*.xls", , _
"Seleccione el archivo al que desea eliminar el código VBA.")
'--
Application.EnableEvents = False
Workbooks.Open Archivo
LibroConMacros = Mid(Archivo, InStrRev(Archivo, "\") + 1)
LibroSinMacros = ActiveWorkbook.Path & "\Sin código_" & Format(Date, "yyyymmdd") & _
Format(Time, "hhmmss") & "_" & LibroConMacros
ActiveWorkbook.SaveCopyAs LibroSinMacros
Workbooks(LibroConMacros).Close
Workbooks.Open LibroSinMacros
Application.EnableEvents = True
'--
Set VBProj = ActiveWorkbook.VBProject
For Each VBComp In VBProj.VBComponents
If VBComp.Type = vbext_ct_Document Then
VBComp.CodeModule.DeleteLines 1, VBComp.CodeModule.CountOfLines
Else
VBProj.VBComponents.Remove VBComp
End If
Next VBComp
'--
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
[/CODE]
Saludos. "Macro".
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola:
Poner esta macro en un libro nuevo y ejecutarla.
Os pedirá un libro.
La macro, genera una copia del mismo eliminando todas las macros, modulos y formularios.
Al nombre de la copia, se le antepone "Sin macros_" + Fecha + Hora
Saludos. "Macro".