Мои пользовательские формы Excel содержат различные объекты, включая текстовые поля, поля со списком, переключатели и т. Д. Пользовательская форма и объекты пользовательской формы уменьшаются и расширяются, когда мой ноутбук находится на док-станции, а окно VBA открыто на монитор большего размера.
Когда я получаю доступ к редактору UserForm на вкладке Forms в VBA, я могу перетащить маркеры изменения размера UserForm, и объекты в UserForm немедленно вернутся в исходное состояние, но я хочу сделать это программно, чтобы конечный пользователь не будет иметь дело с сокращенными / расширенными пользовательскими формами.
Я пытался изменить размер пользовательской формы при открытии (UserForm_Initialize), но кажется, что сжатие / расширение происходит, когда пользовательская форма не активна, это означает, что изменение размера пользовательской формы действует только для возврата пользовательской формы в ее сокращенное / расширенное состояние а не его первоначальное состояние.
Sub UserForm_Initialize()
Call ResizeUserform(Me)
End Sub
Sub ResizeUserform(UserForm_Name As Object)
UserForm_Name.Width = UserForm_Name.Width + 0.001
UserForm_Name.Width = UserForm_Name.Width - 0.001
UserForm_Name.Height = UserForm_Name.Height + 0.001
UserForm_Name.Height = UserForm_Name.Height - 0.001
End Sub