Добрый день,
Я создаю панель управления, в которой при запуске Excel форма пользователя открывается, разворачивается, а Excel скрывается.Мой код отлично работает для ПК с одним монитором.
При использовании двухмониторного ПК VBA открывает пользовательскую форму на главном мониторе, но для ее максимального извлечения требуется информация с монитора, на котором был открыт Excel.
Кто-нибудь знает, как заставить VBA определить, на каком мониторе открыт Excel, и открыть пользовательскую форму на этом мониторе?
'Set the Windows style so that the userform has a minimise and maximise button
lngCurrentStyle = GetWindowLong(lngHWnd, GWL_STYLE)
lngNewStyle = lngCurrentStyle Or WS_MINIMIZEBOX 'Or WS_MAXIMIZEBOX
lngNewStyle = lngNewStyle And Not WS_VISIBLE And Not WS_POPUP 'And WS_MINIMIZEBOX
SetWindowLong lngHWnd, GWL_STYLE, lngNewStyle
'Set the extended style to provide a taskbar icon
lngCurrentStyle = GetWindowLong(lngHWnd, GWL_EXSTYLE)
lngNewStyle = lngCurrentStyle Or WS_EX_APPWINDOW
SetWindowLong lngHWnd, GWL_EXSTYLE, lngNewStyle
ShowWindow lngHWnd, SW_SHOW
'Remove the top bar
HideTitleBar Me
'Maximize form
With Me
.StartUpPosition = 1
.Width = Application.Width
.Height = Application.Height
.Left = 0
.Top = 0
End With
ПРИМЕЧАНИЕ. Я не буду публиковать здесь полный код, потому что онне очень сложный код, но длинный.
Спасибо всем.