У меня очень странная проблема с Excel UserForms; когда я отображаю форму, нажимая кнопку команды на моем листе, размер формы значительно искажается, что делает ее практически непригодной для использования. Изображения ниже иллюстрируют это.
Форма до деформации размера (предполагаемый размер)

Форма после деформации размера

Я работаю с настройкой нескольких экранов, и эта проблема с размером сначала возникала только при использовании моего ноутбука без дополнительных дисплеев; однако теперь это начало происходить даже при моей обычной настройке. Кроме того, в некоторых случаях коробление соединяется с каждой последующей инициализацией формы. Я включил примеры изображений ниже.
Форма до деформации (предполагаемый размер)

Форма после деформации (первая итерация)

Сложное деформирование (вторая итерация)

Дальнейшее сложное деформирование (третья итерация)

Я пробовал устанавливать свойства высоты и ширины вручную, как через окно свойств, так и через событие Userform_Initialize (), но все равно получаю странные результаты. В окне свойств значения, которые я ввожу для высоты и ширины, автоматически меняются после того, как я их ввожу, что обычно приводит к нежелательным соотношениям сторон, и то же самое происходит, когда я пытаюсь изменить размер с помощью VBA. Я не думаю, что проблема заключается в коде, поскольку я просто устанавливаю свойства .Height и .Width, чтобы не было места для ошибки.
Я провел относительно обширное исследование и не смог найти никакой информации по этой проблеме. Я использую Excel 2016; любая помощь будет оценена по достоинству!





Это новая проблема, возникающая в Excel. Я тоже видел это в своих приложениях. В общих параметрах Excel установите значение «оптимизировать для совместимости», и проблема должна исчезнуть.
Думаю, ваша проблема может быть связана с моим здесь.
@Lance Phillips: вариант, о котором вы говорите (изображение ниже в Интернете), отсутствует на моей стороне с 32-разрядной версией Excel 2016 и 64-разрядной версией Windows 10. Понятия не имею почему. Даже с подключенным дополнительным монитором.
Обновлено: по-видимому, это новая функция из сборки Office 9330.1000, см. здесь.
ПРИМЕЧАНИЕ. Если вы работали над проектом и сохранили его, вам необходимо открыть каждую форму и изменить их размер. После изменения размера они вернутся в нормальное состояние.
Проверьте настройки увеличения в Windows (легкий доступ). Это полностью забросило мои размеры форм. Некоторые были большими, другие маленькими. Размеры шрифта были в ваших примерах. Когда форма была создана, она унаследовала увеличение Windows.
Другие пользователи могут не знать, как установить режим совместимости. Если таблица будет доступна нескольким пользователям, используйте этот код для установки правильного размера формы при каждом ее открытии.
Private Sub UserForm_Initialize()
'
' Initialize frm
' (This runs everytime the form is opened)
' frm is the form name
'
' Reset the size
With frm
' Set the form size
Height = {enter desired form height}
Width = {enter desired form width}
End With
End Sub
Вы можете добавлять изображения, используя соответствующее форматирование! Чтобы нам не приходилось переходить по вашим ссылкам.