TYPES: ole2_object TYPE ole2_object.
DATA: excel TYPE ole2_object,
workbook TYPE ole2_object,
sheet TYPE ole2_object,
macro_name TYPE string.
* Inicializamos el objeto COM de Microsoft Excel
CREATE OBJECT excel 'Excel.Application'.
* Abrimos el libro de Excel que contiene la macro
SET PROPERTY OF excel 'Visible' = 1.
CALL METHOD OF excel 'Workbooks' = workbook.
CALL METHOD OF workbook 'Open' EXPORTING #1 = 'C:\ruta\archivo.xlsx'.
* Seleccionamos la hoja de Excel donde se encuentra la macro
CALL METHOD OF workbook 'Worksheets' = sheet EXPORTING #1 = 'Hoja1'.
* Ejecutamos la macro
macro_name = 'nombre_de_la_macro'.
CALL METHOD OF excel 'Run' EXPORTING #1 = macro_name.
* Cerramos el libro de Excel y liberamos los objetos COM
CALL METHOD OF workbook 'Close'.
CALL METHOD OF excel 'Quit'.
FREE OBJECT excel.