Basic Univers
#CF_TEXT = 1
#TIMEOUT_SYNC = 5
#CP_WINANSI = 1004
#DDE_FACK = $8000
#XCLASS_BOOL = $1000
#XCLASS_FLAGS = $4000
#XCLASS_NOTIFICATION = $8000
#XTYPF_NOBLOCK = $2
#XTYP_EXECUTE = $50 | #XCLASS_FLAGS
#XTYP_POKE = $90 | #XCLASS_FLAGS
#XTYP_CONNECT = $60 | #XCLASS_BOOL | #XTYPF_NOBLOCK
#XTYP_DISCONNECT = $C0 | #XCLASS_NOTIFICATION | #XTYPF_NOBLOCK
Global hConnection.l
Procedure.l DdeCallback(uType, uFmt, hConv, hszTopic, hszItem, hData, dwData1, dwData2)
ReturnValue = 0
Select uType
Case #XTYP_EXECUTE
ReturnValue = 0
Case #XTYP_POKE
ReturnValue = #DDE_FACK
EndSelect
ProcedureReturn ReturnValue
EndProcedure
Procedure DdeInit(Server.s, Topic.s)
Id.l = 0
DdeInitialize_(@Id, @DdeCallback(), #APPCLASS_STANDARD | #APPCMD_CLIENTONLY , 0)
hServer = DdeCreateStringHandle_(Id, Server, #CP_WINANSI)
hTopic = DdeCreateStringHandle_(Id, Topic, #CP_WINANSI)
hConnection = DdeConnect_(Id, hServer, hTopic, 0)
EndProcedure
Procedure.l DdeExecute(Command.s)
Delay(200)
hItemMessage = DdeCreateStringHandle_(Id, Command, #CP_WINANSI )
Result = DdeClientTransaction_(@Command, Len(Command), hConnection, hItemMessage, #CF_TEXT, #XTYP_EXECUTE, #TIMEOUT_SYNC, 0)
DdeFreeStringHandle_(Id, hItemMessage)
ProcedureReturn Result
EndProcedure
DdeInit("Excel", "Feuil1")
For i = 1 To 7
Debug DdeExecute("[WORKBOOK.INSERT(1)]")
Next