I have an application written in Delphi.
From this Delphi program, I need to execute Excel (previously configured), to fill some cells in a choosen sheet, launch a macro linked to the choosen sheet, and re-read the computed values from some choosen cells.
Maybe I've to use TOleObject or OLE method itself, but I don't know how to and need a focused related example.


Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

sperlingConnect With a Mentor Commented:
Excel := CreateOLEObject('Excel.Application');

s := Excel.ActiveWorksheet.Cells(ARow, ACol);
Excel.ActiveWorksheet.Cells(ARow, ACol) := s;
Excel.Run('MACRO.XLM!MacroName', 1, 2);

As I ain't got the US version of Excel, the actual method names might not be accurate. According to the docs (which ofcourse documents the US version, not the localized version, sigh...) this ought to work. If not, leave me a comment, and I'll check it out.

For starters get the TExcel component from the Delphi
super page. (http://dsp.static.co.kr/index.html is the mirror that I use) It talks to Excel via DDE. It isnt perfect, but its a good
strakerAuthor Commented:
I started talking about OLE and ToleObject such in word.basic example.
That is ... I need an example that shows me how to use the feature of the ole to open a choose .xls to find a choosen sheet, to launch a macro and to read and to get values back and forth a range of cells...but via OLE such all the examples that everybody could find in litterature and concerning ... createOleObject('word.basic')  ........ ('Excel.Application').

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

I don't thin this is a 50 pt question.  You are looking for
quite a lot of advanced OLE here.
strakerAuthor Commented:
I believe it's not so advanced.
The Word example is very simple. (If I try to register the Macro in Word a can move it quite step by step in the Delphi program and it can be found in every serious Delphi Book) [ Teixeira docet].
In Excel this translation seems not to work. I asked only the four instructions to pilot the reach of a choosen WorkBook, a choosen WorkSheet, to exec a Macro in the WorkSheet and to read and write some Cells. It seems to me not an HARD OLE question.
I Can Add 50 points but it seems a waste of resource.

English is my second language, and I 'm not sure I understand you...

You need e.g. a short procedure, which tells you what OLE objects you should create, and what methods you should call, to

1) Open a given XLS
2) Execute a predefined macro
3) Write to cells
4) Read from cells.

You know how to create the objects, you just need object names and methods.


strakerAuthor Commented:
'cause English is not my second language I'll try to explane my problem in short...
I've just executed the Excel.exe and performed  the createOleObject('Excel.Application'). Now I'd like obtain  ( via OLE ) the following operation:
1- Given a workbook name, to open it.
2- Given a worksheet name, to select it.
3- Given a Row and a Column, to write to it.
4- Given a macro name in the current worksheet, to execute it.
5- Given a Row and a Column, to read from it.

That's all.


This is a 50p question... Just a matter of looking up the right Excel functions... I've got some code doing approximately this, I'll try to locate it and then give an answer...

All Courses

From novice to tech pro — start learning today.