Excel VBA
Excel 控制窗口总是在最前端
2017-10-25 17:10:11

在显示excel数据的时候,我们有时会希望窗口一直保持在最前端。防止打开其他应用把excel窗口挡住。

excel没有自带最前端的功能。我们可以通过第三方软件设置excel窗口最前端。

也可以通过自定义的函数控制是否为最前端

详细源码:

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 Const HWND_TOPMOST = -1 Const HWND_NOTOPMOST = -2 Const SWP_NOSIZE = &H1 Const SWP_NOMOVE = &H2

Sub 窗口总在最前面()     SetWindowPos Application.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE End Sub

Sub 恢复()     SetWindowPos Application.hwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE End Sub

这里用到API函数。在excel中设置两个按钮。调用“窗口总在最前面”和 “恢复”这两个宏就可以了。

效果如图,excel总是在最前面的