Copiar módulo VBA a otro libro Excel
Método para guardar un módulo VBA/importarlo a otro libro Excel. Al exportar hojas a un libro nuevo (el primer ejemplo de código), los módulos VBA no se copiarán, sino el libro nuevo se quedará sin código VBA.
Es decir, este ejemplo no vale para copiar módulos VBA.
'copiar hojas a un libro nuevo Sheets(Array("Hoja1", "Hoja2", "Hoja3")).Copy
Para exportar un módulo VBA, primero hay que guardarlo como un archivo de texto, y luego importarlo desde el libro nuevo.
Objetos del editor VBA
El editor VBA tiene 2 objetos básicos:
VBProject
» Todos los módulos y componentes/referencias VBA del libro
VBComponent
» Un módulo (o formulario) específico del VBProject
Para utilizarlos debes marcar la siguiente referencia del editor VBA:
Herramientas - Referencias - Microsoft Visual Basic for Applications Extensibility x.x.
Exportar módulo VBA
'exportar módulo VBA Dim vbaProyecto As VBIDE.VBProject Dim vbaModulo As VBIDE.VBComponent Public strRuta as String Set vbaProyecto = ThisWorkbook.VBProject Set vbaModulo = vbaProyecto.VBComponents("Module1") strRuta = ThisWorkbook.Path & "\modulo1_export.txt" 'o strRuta = "c:\modulo1_export.txt" vbaModulo.Export strRuta
Importar módulo VBA
'importar módulo VBA Dim vbaProyecto As VBIDE.VBProject Dim vbaModulo As VBIDE.VBComponent Public strRuta as String strRuta = ThisWorkbook.Path & "\modulo1_export.txt" 'o strRuta = "c:\modulo1_export.txt" Set vbaProyecto = ActiveWorkbook.VBProject vbaProyecto.VBComponents.Import (strRuta) 'suprimir el archivo plano Kill strRuta



