como eliminar macros

17/08/2009 - 09:08 por José Rafael | Informe spam
Me gustaría obtener una rutina de código para eliminar macros de un libro y
así poder archivar una hoja "plana" del mismo.
El código que pongo no me funciona.


'Borra las macros

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

Preguntas similare

Leer las respuestas

#1 José Rafael
17/08/2009 - 11:56 | Informe spam
perdón, me faltaba comunicar los Dim:

Dim Modulo As VBIDE.VBComponent, _
Modulos As VBIDE.VBComponents

saludos


"José Rafael" escribió en el mensaje
news:
Mostrar la cita
#2 David
17/08/2009 - 18:58 | Informe spam
Hola, José Rafael.

Muy interesante tu post. Te doy algunas ideas:

Primero,
No agregues este código al libro al cual deseas "limpiar" de código, pues se
eliminaría a sí mismo, y podría generar conflictos. Te sugeriría crear un
libro aparte, y en el código del mismo puedes usar la instrucción:

Application.Dialogs(xlDialogOpen).Show

para abrir el archivo que necesitas limpiar.


Segundo,
No puedes eliminar los módulos de los objetos de Excel (ThisWorkbook,
Sheet1, etc.), pero sí puedes eliminar todas sus líneas. Considera algo como
lo siguiente:

if modulo.type = 100 then 'Tipo de los módulos de los objetos
Microsoft Excel
modulo.codemodule.deletelines _
startline:=1, _
count:=modulo.codemodule.countoflines
end if

Tercero,
para los otros tipos de módulo, creo que estás usando mal el método Remove.
Prueba con algo como:

modulos.remove modulos(modulo.name)

Esperamos tus comentarios para saber cómo te fue (espero que bien) y ver si
podemos apoyarte en algo más.

Saludos cordiales...



"José Rafael" escribió:

Mostrar la cita
#3 Rafa
19/08/2009 - 12:06 | Informe spam
Hola David, gracias por tu atención, pero no soy muy "ducho" en VBA y no
entiendo bien como proceder con tus instrucciones. Lo que necesitaría es una
rutina completa de borrado de modulos para incluirla en el codigo que tengo
con el que "extraigo" una copia de una hoja de un libro pero que no queda
plana sino que se queda con una copia de todos los modulos del libro y por
eso necesito borrarlos para archivar dicha copia.
Gracias por tu ayuda.

Saludos

Jose Rafael

"David" escribió en el mensaje
news:
Mostrar la cita
se
Mostrar la cita
como
Mostrar la cita
Remove.
Mostrar la cita
si
Mostrar la cita
libro
Mostrar la cita
#4 José Rafael
22/08/2009 - 22:37 | Informe spam
Hola David:
¿Me puedes ayudar?
saludos.
José Rafael


"Rafa" escribió en el mensaje
news:%
Mostrar la cita
#5 Héctor Miguel
23/08/2009 - 06:05 | Informe spam
hola, José Rafael !

Mostrar la cita
1) como es el codigo con el que "extraes" una COPIA de una hoja de un libro ?
2) cuales son "todos los modulos del libro" con los que dicha COPIA (de una hoja) "se queda" ?

(en teroria:) si solo copias una hoja (de un libro a otro) y ese hoja tiene codigo en "su modulo"...
solo necesitas eliminar/borrar/... el codigo de esa hoja EN EL LIBRO a donde la has copiado (?)

saludos,
hector.
Ads by Google
Search Busqueda sugerida