xltoday.net

EXCEL 2007 TABLAS Y GRAFICOS


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