Back to top OK, it's started. One thing to bear in mind, when you read the application's helpfiles, is that they aren't just written in Basic rather than Pascal - they're also written for late binding using variants rather than early binding using interfaces. This feature really comes into its own in automation, and I wouldn't want to program without it. Finally, when you're really stuck, you can turn to the newsgroups. The borland.public.delphi.oleautomation newsgroup is a great Delphi-specific resource, but don't forget the newsgroups for the application you're automating, too.
Automation is slow.
First and foremost, use early binding rather than late binding. When you use variants, every function call results in calls to IDispatch GetIDsOfNames and IDispatch. Invoke - a big waste of time when you can call the function directly with early binding. Visual Basic for Applications may not be lightning fast, but it's likely to be faster than sending information from the server to the client and back again. Thirdly, use local variables and with clauses wherever possible, to reduce the number of calls to the server.