Расположение пользовательской формы на том же мониторе, где Excel - PullRequest
1 голос
/ 02 июля 2019

Добрый день,

Я создаю панель управления, в которой при запуске 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

ПРИМЕЧАНИЕ. Я не буду публиковать здесь полный код, потому что онне очень сложный код, но длинный.

Спасибо всем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...