Search code examples
delphiexceloleole-automation

How to add a button to Excel with OLE


I use OLE method like this:

var   
  xlApp, xlWorkBook, xlWorkSheet, arr: Variant; 
begin   
  xlApp := CreateOLEObject('Excel.Application');   
  xlApp.Visible := True;    
end; 

How to add a button to Excel?

And how to assign a exist marco on this button?

Where can I find Delphi-OLE-Office document?

Thx.


Solution

  • I worked this out by recording a VBA macro and then pasting it into your Delphi routine:

    xlApp := CreateOLEObject('Excel.Application');
    xlApp.Visible := True;
    xlWorkBook := xlApp.Workbooks.Add;
    xlWorkBook.ActiveSheet.Buttons.Add(10, 10, 80, 30).Select;
    xlWorkBook.Selection.OnAction := 'Macro1';
    

    There is no Delphi documentation of Office COM automation. You have to use the MSDN documentation and translate it into Delphi yourself.