Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aktivieren der Excel-Application

19 views
Skip to first unread message

Joerg Wolf

unread,
Nov 25, 2009, 3:42:01 PM11/25/09
to
Hi NG,

ich habe ein Excel-Tabellenblatt und ein nicht modales Formular. Für meine
Aufgabe muß sowohl auf dem Formular als auch im Tabellenblatt gearbeitet
werden.

Sofern auf dem Formular bestimmte Buttons gedrückt werden, möchte ich per
VBA die Excel-Anwendung aktivieren.

Das realisiere ich momentan über AppActivate "Microsoft Excel". Ist aber
unschön, da dieser Befehl bei maximiertem Fenster um den Fenstertitel ergänzt
werden muß und damit fehlerträchtig ist.

Wahlweise, sagt die Hilfe, kann die Task-ID angegeben werden. Aber woher
nehmen?

Oder gibt es noch einen anderen Weg?

Gruß Jörg


Andreas Killer

unread,
Nov 26, 2009, 4:41:40 AM11/26/09
to
Joerg Wolf schrieb:

> ich habe ein Excel-Tabellenblatt und ein nicht modales Formular. Für meine

...


> Sofern auf dem Formular bestimmte Buttons gedrückt werden, möchte ich per
> VBA die Excel-Anwendung aktivieren.

Wenn Du mit "nicht modales Formular" meinst das Du eine Userform so
aufrufst: "UserForm1.Show vbModeless", dann läßt sich das auch über
eine API machen.

Andreas.

Private Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName As String, ByVal _
lpWindowName As String) As Long

Private Declare Function BringWindowToTop Lib "user32.dll" ( _
ByVal hwnd As Long) As Long

Private Sub CommandButton1_Click()
Dim I As Long
I = FindWindow("XLMAIN", vbNullString)
BringWindowToTop I
End Sub

Joerg Wolf

unread,
Nov 26, 2009, 3:54:01 PM11/26/09
to
Hallo Andreas,

genau das hab ich gesucht. Dankeschön

Gruss Jörg


> > Sofern auf dem Formular bestimmte Buttons gedrückt werden, möchte ich per
> > VBA die Excel-Anwendung aktivieren.
> Wenn Du mit "nicht modales Formular" meinst das Du eine Userform so
> aufrufst: "UserForm1.Show vbModeless", dann läßt sich das auch über
> eine API machen.
>
> Andreas.
>
> Private Declare Function FindWindow Lib "user32" Alias _
> "FindWindowA" (ByVal lpClassName As String, ByVal _
> lpWindowName As String) As Long
>
> Private Declare Function BringWindowToTop Lib "user32.dll" ( _
> ByVal hwnd As Long) As Long
>
> Private Sub CommandButton1_Click()
> Dim I As Long
> I = FindWindow("XLMAIN", vbNullString)
> BringWindowToTop I
> End Sub

> .
>

0 new messages