Mon Site SAP Accueil Forum ABAP Weblog Liens ABAPs Livres Humour A propos...
ABAP peut appeler les fonctions Win32 API par les interfaces COM et Visual Basic.
Ici, nous appelons GetWindowsDirectory:

1. ABAP:

REPORT ZCALLWIN MESSAGE-ID 00.

INCLUDE OLE2INCL.

CONSTANTS:
  C_BOOKFILE(255) TYPE C VALUE 'D:\TEMP\TEST.XLS'.

DATA:
  M_APP       TYPE OLE2_OBJECT,
  M_BOOK      TYPE OLE2_OBJECT,
  M_SHEET     TYPE OLE2_OBJECT,
  M_RES       TYPE OLE2_OBJECT,
  M_PATH(255) TYPE C.

  CREATE OBJECT M_APP 'EXCEL.APPLICATION'.
  IF SY-SUBRC NE 0.
    MESSAGE E368 WITH 'Create object failed'.
  ENDIF.

  CALL METHOD OF M_APP 'WORKBOOKS' = M_BOOK .
  CALL METHOD OF M_BOOK  'OPEN'
       EXPORTING #1 = C_BOOKFILE.
  CALL METHOD OF M_APP 'RUN'
       EXPORTING #1 = 'test.xls!Macro2'.

  CALL METHOD OF M_APP 'RANGE' = M_RES
       EXPORTING #1 = 'A1'.
  GET PROPERTY OF M_RES 'VALUE' = M_PATH.
  WRITE: / 'Windows Dir:', M_PATH.

  CALL METHOD OF M_APP 'SAVE'.
  CALL METHOD OF M_APP 'QUIT'.

  FREE OBJECT M_RES.
  FREE OBJECT M_BOOK.
  FREE OBJECT M_APP.
2. Un fichier Excel d:\temp\test.xls contient le macro Visual Basic:
Declare Function GetWinDir Lib "kernel32" _
        Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _
                                      ByVal nSize As Long) As Long


Sub Macro2()
    Dim Path As String * 255
    Dim Res As Integer
        
    Res = GetWinDir(Path, Len(Path))
    Range("A1").Value = Path
    
End Sub
Pour plus d'infos sur utilisation de Win32 dans VB, allez a http://msdn.microsoft.com