Zuerst habe ich ärgere dich, indem du wiederholst, was du von MSDN bekommen hast;). Dann beschreibe ich, welche Wege ich gefunden habe, um Fenster nach vorne zu bringen.
Ich sehe auch nicht die Notwendigkeit zu tun, was Sie fragen. Sie möchten Ihren Code debuggen, aber zum Debuggen finde ich es (meistens) wichtig, den Code während der Ausführung zu sehen. Die Fenster nebeneinander zu platzieren und F8 zu verwenden, um durch den Code zu gehen, scheint eine bessere Option zu sein.
Für die wenigen Szenarien, die ich mir vorstellen kann, wäre es genug, um das Makro aus dem Excel-Fenster zu starten (Alt + F8).
Jetzt für die tatsächliche Antwort: ich über andere Versionen weiß nicht, aber für mich nur ein Fenster zu aktivieren bringe es nicht an die Front (Office 2016, 10 Windows). Ich fand die folgende Arbeit:
AppActivate Mit Hilfe von (wahrscheinlich die beste Methode, obwohl Ich mag keine Fenster nach ihrem Namen Angabe)
AppActivate Application.Caption
Schlüssel senden Alt
+ F11
:
Application.SendKeys "%{F11}"
jedoch sollten Sie vielleicht überprüfen, ob die Excel-Fenster bereits vor sind (oder Sie könnten die VBE bringen). Der einzige Weg, fand ich wurde mit der System-API:
'on top of your module
Declare Function GetForegroundWindow Lib "user32"() As Long
'in your sub
If GetForegroundWindow = Application.VBE.mainwindow.hwnd Then Application.SendKeys "%{F11}"
System-API
'on top of your module
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'in your sub
SetForegroundWindow ThisWorkbook.Windows(1).hwnd
Einstellen der Sichtbarkeit auf false und true wieder bringt es auch für mich an die Front
ThisWorkbook.Windows(1).Visible = False
ThisWorkbook.Windows(1).Visible = True
Ich sehe, was Sie sagen, nicht sicher, dass dies möglich ist. Ich habe ursprünglich die 'Activate' Methode vorgeschlagen, aber dadurch wird das Excel Fenster nicht angezeigt.Können Sie die Methode von einem Schaltflächenformular aus ausführen, das dasselbe tut (und zwischen Arbeitsblättern wechselt, wenn Sie die Methode 'Activate' verwenden) – AER