1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Ejecutar una macro de VBA ejecutándola desde Visual Basic método Run ejemplo
« en: 01 de Diciembre 2020, 12:49 »
Buenas, este sería un código de ejemplo para ejecutar una macro invocándola desde Visual Basic. Este código habría que adaptarlo a la versión de Visual Basic con que se esté trabajando, y cambiar el nombre test por el nombre que tenga la macro. En el código se puede hacer que el excel se visualice manteniendo Excel.Visible = True o bien que no se visualice eliminando esta línea.
Macro de ejemplo que va escribiendo valores desde la celda 1 hasta la 10 , luego se guarda el libro y se cierra
Salu2
Código: [Seleccionar]
Private Sub Command1_Click()
Dim ret As Boolean
' le pasa la ruta del libro y el nombre de la macro _
NOTA: Si la macro tiene parámetros, pasarlos al método Run, _
por ejemplo: Excel.Run "NombreMacro","Param1","Param2", ..etc....
ret = Ejecutar("c:\Libro1.xls", "test")
If ret Then
MsgBox "OK", vbInformation 'OK
End If
End Sub
Private Sub Form_Load()
Command1.Caption = "Ejecutar Macro"
End Sub
Function Ejecutar(Libro As String, _
Macro As String) As Boolean
On Error GoTo Error_function
Dim Excel As Object
'Nueva Referencia al Excel
Set Excel = CreateObject("Excel.Application")
Excel.Visible = True ' opcional
With Excel
.Application.workbooks.open Libro ' abre el libro
.Run (Macro) ' ejecuta la macro
End With
' descarga la referencia
Set Excel = Nothing
Ejecutar = True ' OK
Exit Function
Error_function:
' elimina la referencia
If Not Excel Is Nothing Then Set Excel = Nothing
' mensaje de error
If Err Then
MsgBox Err.Description, vbCritical
End If
End Function
Macro de ejemplo que va escribiendo valores desde la celda 1 hasta la 10 , luego se guarda el libro y se cierra
Código: [Seleccionar]
Sub test()
Dim i As Integer
' escribe algunos datos en las celdas
For i = 1 To 10
Cells(i, 1) = Cells(i, 1) + i
Next
' guarda y cierra este libro
ActiveWorkbook.Save
Excel.Application.Quit
Salu2