1. 程式人生 > >vba 新建進程且窗口置頂

vba 新建進程且窗口置頂

creat use app user cap string cat 3.x mov


Const HWND_TOPMOST = -1
Const HWND_NOTOPMOST = -2
Const SWP_NOSIZE = &H1
Const SWP_NOMOVE = &H2
Const SWP_NOACTIVATE = &H10
Const SWP_SHOWWINDOW = &H40
Private Declare Sub 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)
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Public Sub Window_Top() ‘調用API函數,實現窗口最前
Dim WINWND As Long
WINWND = FindWindow(vbNullString, Application.Caption)
SetWindowPos WINWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
End Sub

Sub CreateApp()

Dim wb As Workbook
‘ Set wb = Workbooks.Open("D:/B.xls")

Set app = CreateObject("Excel.Application")
app.Visible = True


app.Workbooks.Open ("C:\vba-test\123.xlsx")


WINWND = FindWindow(vbNullString, app.Caption)
SetWindowPos WINWND, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE

End Sub

vba 新建進程且窗口置頂