VBA + Excel + UserForm Как сделать поверх остальных окон?

Программирование на Visual Basic for Applications
Gelo_R
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 21.09.2007 (Пт) 20:16

VBA + Excel + UserForm Как сделать поверх остальных окон?

Сообщение Gelo_R » 21.09.2007 (Пт) 21:02

В экселе есть форма. Как сделать ее поверх остальных окон, даже если эксель свернутый?

Спамибо.

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 22.09.2007 (Сб) 21:21

Код: Выделить всё
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
      (ByVal lpClassName As String, _
      ByVal lpWindowName As String) As Long
Private 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
Private Const HWND_NOTOPMOST = -2
Private Const HWND_TOPMOST = -1
Private Const SWP_NOMOVE = &H2
Private Const SWP_NOSIZE = &H1

Private Sub UserForm_Activate()
Dim hWnd As Long
   hWnd = FindWindow(vbNullString, Me.Caption)
       Call SetWindowPos(hWnd, HWND_TOPMOST, 100, 0, 100, 0,WP_NOMOVE Or SWP_NOSIZE)

'*******Форма в нормальное положение**************
'       Call SetWindowPos(hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
'**********************************************
End Sub

[/code]

Gelo_R
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 21.09.2007 (Пт) 20:16

Сообщение Gelo_R » 22.09.2007 (Сб) 22:10

Большое спасибо! Все работает. но только если эксчель не свернутый в значок. А есть ли возможность сделать, чтобы также работало даже при свернутом экселе?

Еще раз спасибо.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 64

    TopList