Macro

29/12/2004 - 12:52 por Luises | Informe spam
Muy buenas.

¿Se puede crear una macro que elimine las demás macros, incluida ella misma,
de un fichero?

Muchas gracias.
 

Leer las respuestas

#1 Héctor Miguel
30/12/2004 - 04:28 | Informe spam
hola, Luises !

¿Se puede crear una macro que elimine las demás macros, incluida ella misma, de un fichero?



el manejo de 'codigo×codigo' [modificar/agregar/eliminar - lineas/modulos] requiere:
-> establecer una referencia [en vba] a la libreria [Microsoft Visual Basic for Applications Extensibility]
la version de la libreria 'depende' de la version [de excel] donde se ha de utilizar [p.e.]
1) en excel 97 => NO DEBE tener numero de version.
2) en excel 2K => debiera funcionar 'sin problemas'
3) en excel XP/2003 => REQUIERE [ademas] de un 'ajuste' [en caso de no tenerlo ya] a las 'Fuentes de confianza'
el ajuste es en: herramientas/macros/seguridad/[pestaña] fuentes de confianza y ...
poner una marca en: 'confiar en el acceso a proyectos de visual basic'

va un ejemplo en seguida, si cualquier duda... ¿comentas?
saludos,
hector.

OJO => la siguiente macro elimina TODOS los codigos del libro 'activo' <= OJO
en un modulo de codigo 'normal' ==Sub Eliminar_todos_los_codigos()
Dim Modulo As VBIDE.VBComponent, Modulos As VBIDE.VBComponents
Set Modulos = ActiveWorkbook.VBProject.VBComponents
For Each Modulo In Modulos
Select Case Modulo.Type
Case VBExt_ct_StdModule, VBExt_ct_MSForm, VBExt_ct_ClassModule
Modulos.Remove Modulo
Case Else
With Modulo.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Select
Next
Set Modulos = Nothing
End Sub

Preguntas similares