AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Button in Excel per Delphi drücken

Ein Thema von Codewalker · begonnen am 30. Mär 2007 · letzter Beitrag vom 31. Mär 2007
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Button in Excel per Delphi drücken

  Alt 30. Mär 2007, 13:58
Ich habe in Excel einen CommandButton (aus der Symbolleiste Steuerelemente). Dieser führt ein Makro bei Click aus. Ich schaffe es aber von Delphi aus nicht, einen Klick auf diesen Button zu simulieren oder das Makro auszuführen. Beim Button weiß ich nicht, wie das geht, beim Makro bekomme ich immer den Fehler: "Makro nicht gefunden" obwohl der Name stimmt. Hat jemand eine Idee was ich falsch mache?
  Mit Zitat antworten Zitat
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#2

Re: Button in Excel per Delphi drücken

  Alt 30. Mär 2007, 15:50
Hallo,

ich muss zugeben, ich habe selten mit Excel gearbeitet, daher weis ich nicht, wie im einzelnen die Buttons angeordnet bzw. benannt sind, aber grundsätzlich sollte es gehen, dass du dir mit Hier im Forum suchenFindWindow das Handle von Excel und mit Hier im Forum suchenFindWindowEx das Handle des Buttons holst. Dann kannst du mit Hier im Forum suchenPostMessage oder Hier im Forum suchenSendMessage an den Button dein Ereignis senden:
PostMessage(ButtonHandle, BM_CLICK, 0, 0); Wie man ein Makro startet weis ich leider auch nicht.

Gruß
Mazel
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Button in Excel per Delphi drücken

  Alt 30. Mär 2007, 16:40
Zitat von Codewalker:
beim Makro bekomme ich immer den Fehler: "Makro nicht gefunden" obwohl der Name stimmt. Hat jemand eine Idee was ich falsch mache?
Wie sieht denn der Code zum Ausführen des Makros aus?
Thomas
  Mit Zitat antworten Zitat
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
Benutzerbild von Mazel
Mazel

Registriert seit: 11. Nov 2005
Ort: Leipzig
831 Beiträge
 
#5

Re: Button in Excel per Delphi drücken

  Alt 30. Mär 2007, 16:57
@shmia: wenn man weis wie, ist es natürlich so besser.
Marcel Jänicke
www.mj-software.net
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Button in Excel per Delphi drücken

  Alt 31. Mär 2007, 10:35
Alles klar. Weil ich zwei Makros mit dem selben Namen in verschiedenen Tabellenblätter hatte, musste ich noch "Tabelle1." vor den Makronamen setzen und das Makro wurde automatisch als "Private" gekennzeichnet. Das muss man auch noch entfernen, dann klappt das mit dem Run(..) wunderbar. Danke für die Tipps
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz