Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel in Hintergrund - Sub starten

Forumthread: Excel in Hintergrund - Sub starten

Excel in Hintergrund - Sub starten
23.08.2005 17:53:23
Aaron
Hallo,
eine vermutlich simple Frage, aber ich würge bereits geraume Zeit daran 'rum:
wenn ich z.B. mit ALT + TAB zu einer anderen Anwendung wechsle, mithin das Excel-Window in den Hintergrund kommt, soll ein Makro ausgeführt werden (das bestimmte Windows-Einstellungen wieder herstellt).
Workbook-Deactivate etc.-Ereignisse scheinen alle nicht zu greifen, gibt's ein workaround, etwa via API?
Bin gespannt!
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel in Hintergrund - Sub starten
23.08.2005 17:56:27
ransi
hallo
versuch mal das ereigniss:
window_deactivate
zu finden unter "DieseArbeitsmappe"
könnte sein was du suchst...
ransi
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:02:09
Fred
Hi,
Programmwechsel mit alt + tab löst in Excel kein Ereignis aus.
mfg Fred
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:05:04
Nepumuk
Hi Aaron,
ein Beispiel. Das arbeitet zwar genau ander herum, aber du kannst es dir sicher anpassen.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call prcStop
End Sub

Private Sub Workbook_Open()
    bolActiv = True
    Call prcStart
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Option Private Module

Private Declare Function SetTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long, _
    ByVal uElapse As Long, _
    ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
    ByVal hwnd As Long, _
    ByVal nIDEvent As Long) As Long
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long

Private lnghWnd As Long
Public bolActiv As Boolean

Public Sub prcStart()
    lnghWnd = FindWindow("XLMAIN", Application.Caption)
    SetTimer lnghWnd, 0, 10, AddressOf TimerProc
End Sub

Public Sub prcStop()
    KillTimer lnghWnd, 0
End Sub

Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, _
        ByVal uElapse As Long, ByVal lpTimerFunc As Long)

    If GetActiveWindow = lnghWnd Then
        If Not bolActiv Then
            Call prcYour_Procedur
            bolActiv = True
        End If
    Else
        bolActiv = False
    End If
End Sub

Public Sub prcYour_Procedur()
    Static intIndex As Integer
    intIndex = intIndex + 1
    MsgBox "Excel become the focus " & CStr(intIndex) & ". Time", 64, "Info"
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:10:08
Leo
Hi,
warum eigentlich lnghWnd = FindWindow("XLMAIN", Application.Caption), Excel 2000
hat doch Application.Hwnd?
mfg leo
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:17:26
Nepumuk
Hi Leo,
nee, leider nicht. Die gibt's erst ab XP.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Excel in Hintergrund - Sub starten
23.08.2005 18:32:18
Leo
Hi,
aha, danke für die Nachhilfe.
mfg Leo
AW: Excel in Hintergrund - Sub starten
24.08.2005 11:16:38
Aaron
Hallo,
vielen, vielen Dank! Ich denke, das Konstrukt von Nepomuk ist der Clou!
Auf so'n "AddressOf"-Gedöns und Timer-Funktionen bin ich noch nicht trainiert - fängt jetzt also an.
Hier lernt wirklich 'was!!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige