* VBA-Code
DATA(it_vba_code) = VALUE stringtab( ( |Dim app| )
( |Set app = CreateObject("Access.Application")| )
( |Dim msg| )
( |msg = MsgBox ("My Message.", 0, "Warning")| ) ).
DATA: lv_temp_dir TYPE string.
* Temp-Directory holen
cl_gui_frontend_services=>get_desktop_directory( CHANGING desktop_directory = lv_temp_dir ).
* Note 1442303, sonst ist lv_temp_dir leer
cl_gui_cfw=>flush( ).
* Dateinamen zusammenbauen
DATA(lv_filename) = |{ lv_temp_dir }\\my_script.vbs|.
* Datei im Zielverzeichnis erzeugen
cl_gui_frontend_services=>gui_download( EXPORTING
filename = lv_filename
filetype = 'ASC'
CHANGING
data_tab = it_vba_code ).
LOOP AT it_vba_code ASSIGNING FIELD-SYMBOL(<fs_line>).
WRITE: / <fs_line>.
ENDLOOP.
SKIP.
WRITE: / lv_filename.
* VBA über Scripting Host ausführen
* "" für lv_filename ergänzen, sonst wird der Pfad unter parameter nicht korrekt übergeben,
* da Leerzeichen im Pfad als Trennung in einzelne Parameter erkannt wird
cl_gui_frontend_services=>execute( application = 'WSCRIPT.EXE'
parameter = |"{ lv_filename }"| ).