Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Button in Excel per Delphi drücken

  Alt 30. Mär 2007, 16:51
Ein Macro in Excel über den Umweg eines Button zu starten ist natürlich Käse.
Man kann direkt das Excel Application Objekt über Automatisierung anziehen und dann die Methode
Run() aufrufen.
Code:
[id(0x00000103), helpcontext(0x00010103)]
        HRESULT Run(
                        [in, optional] VARIANT Macro,
                        [in, optional] VARIANT Arg1,
                        [in, optional] VARIANT Arg2,
                        [in, optional] VARIANT Arg3,
                        [in, optional] VARIANT Arg4,
                        [in, optional] VARIANT Arg5,
                        [in, optional] VARIANT Arg6,
                        [in, optional] VARIANT Arg7,
                        [in, optional] VARIANT Arg8,
                        [in, optional] VARIANT Arg9,
                        [in, optional] VARIANT Arg10,
                        [in, optional] VARIANT Arg11,
                        [in, optional] VARIANT Arg12,
                        [in, optional] VARIANT Arg13,
                        [in, optional] VARIANT Arg14,
                        [in, optional] VARIANT Arg15,
                        [in, optional] VARIANT Arg16,
                        [in, optional] VARIANT Arg17,
                        [in, optional] VARIANT Arg18,
                        [in, optional] VARIANT Arg19,
                        [in, optional] VARIANT Arg20,
                        [in, optional] VARIANT Arg21,
                        [in, optional] VARIANT Arg22,
                        [in, optional] VARIANT Arg23,
                        [in, optional] VARIANT Arg24,
                        [in, optional] VARIANT Arg25,
                        [in, optional] VARIANT Arg26,
                        [in, optional] VARIANT Arg27,
                        [in, optional] VARIANT Arg28,
                        [in, optional] VARIANT Arg29,
                        [in, optional] VARIANT Arg30,
                        [out, retval] VARIANT* RHS);
Delphi-Quellcode:
var
 objXL, MacroResult : OleVariant;
begin
    objXL := CreateOleObject('Excel.Application');
    objXL.Visible := True
    // Open the Workbook
    objXL.Workbooks.Open('C:\Statistik.XLS');
    MacroResult := objXL.Run('MeinMacro', 0); // 0 ist ein Übergabeparameter, max 30 Stück möglich

end;
Andreas
  Mit Zitat antworten Zitat