Перейти к содержимому
Наше приложение «Дешевые авиабилеты» в AppGallery >>

VBA Excel. Размеры и расположение элементов управления

    Определение размеров и расположения существующих элементов управления на пользовательской форме с помощью кода VBA Excel и сохранение их в текстовый файл.

    Описание возможной проблемы

    В разных версиях Excel установки по умолчанию могут различаться, и элементы управления могут отображаться на пользовательской форме некорректно, в том числе вылезать за границы формы.

    Если вы программируете на VBA Excel по заказу, то необходимо, чтобы у всех ваших клиентов пользовательская форма всегда открывалась корректно, независимо от операционной системы и версии приложения.

    Этого можно достичь, задавая размеры и расположение элементов управления и размеры самой пользовательской формы при ее загрузке. Но вручную писать код VBA с установкой размеров и расположения хотя и не сложно, но достаточно трудоемко.

    Исходный код для решения

    Вместо ручной работы, можно использовать следующий код VBA Excel, который считывает размеры и расположение элементов управления с указанной формы и записывает результаты в текстовый файл RazmeshcheniyeElementov.txt:

    Для реализации программы необходимо представленный выше код вставить в стандартный модуль книги Excel с обрабатываемой формой. В строке myForm = "UserForm1" следует заменить UserForm1 на имя нужной пользовательской формы, и можно запускать код на выполнение непосредственно из редактора VBA.

    Текстовый файл с записанным кодом будет сохранен в ту же папку, где расположена книга с обрабатываемой формой. Сгенерированный код VBA сразу готов к вставке в процедуру UserForm_Initialize().

    Вы можете самостоятельно добавить в мой код тип и размер шрифта, если посчитаете необходимым.

    Рекомендую открывать файлы для просмотра методом ThisWorkbook.FollowHyperlink. Пример и преимущества этого метода в статье VBA Excel. Открыть файл другой программы.

    Пример сгенерированного кода

    Исходный код определения размеров и расположения элементов управления был запущен для формы UserForm1 с двумя надписями и с одним экземпляром текстового поля, комбинированного списка и кнопки.

    В результате был сгенерирован следующий код VBA Excel:

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

    Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.