简体   繁体   中英

Get Excel Window back to Foreground

I searched the Internet from top to the root, but I couldn't find a solution. In my Excel Workbook I want to import Contacts from Outlook. This works fine without any problems. I get the GAL to the foreground by using Outlook.ActiveWindow.Activate and I minimize Outlook by using Outlook.Explorers.Item(1).WindowState = olMinimized . I know this is not really a very clean solution, but everything works fine unless there are no other Outlook Windows opened.

Now to my problem:
When the user has more than one opened Outlook Window (eg a new mail dialog, etc.) I can't bring my Excel Application back to Foreground. The import of contacts still works fine. The GAL comes to Foreground by clicking a Button.
I tried the following code snippets, but they don't really work.

   Dim AppTitle As String
   AppTitle = Application.Caption
   '
   'some code
   '
   AppActivate AppTitle

Another attempt was this function in a module

   Public Declare Function SetForegroundWindow Lib "user32" _
   (ByVal hWnd As Long) As Long

calling it in my Button Function

   Dim AppXL As Object
   Set AppXL = CreateObject("Excel.Application")
   '
   'some code
   '
   SetForegroundWindow AppXL.hWnd

I also tried to use this code snippet

   Excel.Application.Visible = True
   Excel.Application.ActiveWindow.Activate

Nothing helped. The only thing happened was the blinking Excel Icon in the taskbar. I hope you can help me out with this.

Assuming this code is in your Excel workbook, it would just be:

   SetForegroundWindow Application.hWnd

rather than creating a new application instance.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM