How to keep excel window always on top?
Have you ever wished that keep your Excel windows always on top and don’t be covered by other windows? Unfortunately, Excel doesn’t provide a feature for solving this task. But, here, I can give you a VBA code to deal with this job.
The following VBA code can help you to keep the Excel window always on top, the code is applied to both office 32-bit and office 64-bit.
1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Keep Excel window always on top
'Update 20140909 #If Win64 Then Public Declare PtrSafe Function SetWindowPos _ Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal hwndInsertAfter As LongPtr, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) _ As Long #Else Public Declare Function SetWindowPos _ Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hwndInsertAfter As Long, _ ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, _ ByVal wFlags As Long) _ As Long #End If Public Const SWP_NOSIZE = &H1 Public Const SWP_NOMOVE = &H2 Public Const HWND_TOPMOST = -1 Public Const HWND_NOTOPMOST = -2 Sub ShowXLOnTop(ByVal OnTop As Boolean) Dim xStype As Long #If Win64 Then Dim xHwnd As LongPtr #Else Dim xHwnd As Long #End If If OnTop Then xStype = HWND_TOPMOST Else xStype = HWND_NOTOPMOST End If Call SetWindowPos(Application.hwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE) End Sub Sub SetXLOnTop() ShowXLOnTop True End Sub Sub SetXLNormal() ShowXLOnTop False End Sub
3. Then press F5 key to run this code, and a Macros dialog box will appear, select SetXLOnTop option, and click Run button.
4. And then your Excel window will be always on top of other applications.
Note: If you want to return the Excel window to normal, just press F5 key to open the Macros dialog, choose SetXNormal and click Run.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
- To post as a guest, your comment is unpublished.· 2 months agoDoes this code have to be applied to each excel file separately or can the macro be saved within excel to be toggled on/ off whenever a new Excel workbook is open?
- To post as a guest, your comment is unpublished.· 2 years agoHello
It seems that xHwnd defined to store Application.hWnd before calling SetWindowPos as below:
xHwnd = Application.hWnd
Call SetWindowPos(xHwnd, xStype, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE)
- To post as a guest, your comment is unpublished.· 2 years agoAbsolute genius. Exactly what I needed. Thanks!!!
- To post as a guest, your comment is unpublished.· 2 years agoThanks so much for this! I needed to keep my automated system stats sheet up at all times while I did other things based on what it was showing me. Very helpfull! :D
- To post as a guest, your comment is unpublished.· 3 years agoThanks .. God Bless..!
- To post as a guest, your comment is unpublished.· 4 years agoThanks for this. Very helpful when transposing data from multiple systems onto a spread sheet. Appreciate the code!
- To post as a guest, your comment is unpublished.· 4 years agoThanks for the help!!! I had to use this as a workaround because you cant have two workpages open at the same time. Appreciate you sharing your code :)
- To post as a guest, your comment is unpublished.· 6 years agoLove this!! Great code. Thanks! I'm a beginning programmer, I just barely know what it does.
Where would I change in the code if I wanted the window to jump to a certain size, hide the ribbon, and/or jump to a certain sheet or cell range?
- To post as a guest, your comment is unpublished.· 6 years agoThanks for providing this code! So helpful. I've been using Judy ten key for this feature but now I can use excel. Awesome, thank you!!