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
> 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
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
> .
>