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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег <pre> и по окончании кода </pre>.