- Пользовательская форма (формула) в VBA
- Видеокурсы по Excel
- Вставить пользовательскую форму
- Свойства:
- Цвет фона
- Цвет границы
- Стиль границы
- Подпись
- Цикл
- DrawBuffer
- Включено
- Передний цвет
- Высота
- Идентификатор контекста справки
- Сохранить видимость полос прокрутки
- Значок мыши
- Указатель мыши
- Изображение
- Выравнивание изображения
- PictureSizeMode
- Разбиение изображения
- Полосы прокрутки
- Высота прокрутки
- Прокрутка влево
- Вверху прокрутки
- Ширина прокрутки
- Специальный эффект
- StartUpPosition
- Что это за кнопка
- Что это за помощь
- Ширина
- Для скачивания
- Контент
- Если
- Павел Ласбк — автор сайта
- Комментарии
- Джон
- Павел Ласбак
- Джон
- Павел Ласбак
- Джон
- Карольна
- Пол в Каролину
- Пол в Каролину
- Рекомендую
- Пол, рекомендую
- кадрлейн
- АннаД
- Милан К
- Мать
- Дж. Питер
Пользовательская форма (формула) в VBA
Видеокурсы по Excel
В сотрудничестве с SEDUO я создал несколько видеокурсов:
- Как работать с Excel – научитесь эффективно использовать Excel – самый популярный ( рейтинг 97 %, более 13 000 студентов, + 750 положительных отзывов ) – Получить курс
- MaxiCourse Excel – получите лучшую работу, больше денег, станьте незаменимым ( более 6 часов просмотра, 160 уроков ) – Получить курс
- G-таблицы. — если не нравится Excel, воспользуйтесь курсом на Google-таблицах
. Пользовательская форма и ее использование в VBA.
Вставить пользовательскую форму
Прежде чем мы начнем работать с элементами управления, нам нужно создать форму, в которую мы сможем их поместить. Вкладка Разработчик — Visual Basic . Меню Вставка — Форма пользователя .
Свойства:
Список основных свойств элемента UserForm. Окно свойств можно открыть с помощью клавиши F4 .
- (Имя)
- Цвет фона
- Цвет границы
- Стиль границы
- Подпись
- Цикл
- Буфер рисования
- Включено
- Шрифт
- Передний цвет
- Высота
- HelpContextID
- KeepScrollBarsVisible
- Слева
- Значок мыши
- Указатель мыши
- Изображение
- Выравнивание изображения
- PictureSizeMode
- Разбиение изображения
- Полосы прокрутки
- Высота прокрутки
- Прокрутка влево
- Вверху прокрутки
- Ширина прокрутки
- Специальный эффект
- StartUpPosition
- Тег
- Топ
- WhatsThisButton
- Что это за помощь
- Ширина
- Масштаб
Имя элемента (можно изменить). Где ты тогда?мы будем обращаться к этому элементу по его уникальному имени. В нашем примере (Имя) — это UserForm1.
Цвет фона
Возвращает или задает цвет фона объекта TextBox.
UserForm1.BackColor = RGB(255, 128, 128)
BackColor = UserForm1.BackColor
Цвет границы
Возвращает или задает цвет границы. Если граница не установлена, изменение цвета не будет отражено.
UserForm1.BorderColor = RGB(254, 127, 127)
Стиль границы
Отменить настройку или изменить настройку границы.
fmBorderStyleNone — 0 — не имеет видимой границы
Примечание игнорируется, если свойство SpecialEffect = none
Подпись
Varcn Text на объекте Label (Описание) или установите его.
UserForm1.Caption = «office.lasakovi.com — Pavel Lasбk»
АктуальныйTextVUserForm = UserForm1.Caption
Цикл
Определяет действие, которое необходимо выполнить, когда пользователь выходит из последнего элемента управления Frame.
- fmCycleAllForms 0 Циклически переключает элементы управления в форме и элементы управления Frame, которые в данный момент отображаются в форме.
- fmCycleCurrentForm 2 Циклически переключает элементы управления формы и элементы управления Frame. Форма Frame остается активной до тех пор, пока действие не будет явно перемещено в элемент управления за пределами формы Frame.
UserForm1.Cycle = fmCycleCurrentForm
UserForm1.Cycle = 0
DrawBuffer
Определяет количество пикселей, зарезервированных для внеэкранной памяти при рендеринге кадра. Целое число от 16 000 до 1 048 576, выражающее максимальное количество пикселей, которое может скрыто отображать объект.
Включено
Указывает, может ли элемент управления становиться активным и реагировать на пользовательские события. Или указывает, как в данный момент задано это свойство.
UserForm1.Enabled = Истина
UserForm1.Enabled = False
EnabledSettings = UserForm1.Enabled
Выход Alt + F4.
Вернуть настройки шрифта или установить необходимые настройки шрифта (размер, тип и т. д.).
Передний цвет
Varcn задает или определяет цвет лицевой стороны объекта, т.е. в нашем случае, какой цвет будет у текста.
UserForm1.ForeColor = RGB(255, 255, 0)
Высота
Вернуть всю формулировку или установить всю.
UserForm1.Height = 28
Высота = UserForm1.Height
Идентификатор контекста справки
Ссылка на справку в формате Microsoft Windows для определенного объекта
Сохранить видимость полос прокрутки
Указывает, должны ли ползунки оставаться видимыми, даже если они не нужны.
- fmScrollBarsNone 0 Не показывать полосы прокрутки.
- fmScrollBarsHorizontal 1 Отображение горизонтальной полосы прокрутки.
- fmScrollBarsVertical 2 Отображение вертикальной полосы прокрутки.
- fmScrollBarsBoth 3 Отображение горизонтальной и вертикальной полосы прокрутки (настройка по умолчанию).
UserForm1.KeepScrollBarsVisible = fmScrollBarsBoth
Разместите арт-объект с левого края. Или узнайте, как расположен объект.
removeleft = UserForm1.Left
UserForm1.Left = 12
Значок мыши
Добавлены значки для объекта
Указатель мыши
Вернуть тип указателя мыши или установить указатель мыши. Значения:
- fmMousePointerDefault 0 — стандартный указатель
- fmMousePointerArrow 1
- fmMousePointerCross 2
- fmMousePointerIBeam 3
- fmMousePointerSizeNESW 6
- fmMousePointerSizeNS 7
- fmMousePointerSizeNWSE 8
- fmMousePointerSizeWE 9
- fmMousePointerUpArrow 10
- fmMousePointerПесочные часы 11
- fmMousePointerNoDrop 12
- fmMousePointerApp, начиная с версии 13
- fmMousePointerHelp 14
- fmMousePointerSizeAll 15
- fmMousePointerCustom 99
UserForm1.MousePointer = fmMousePointerHelp
Изображение
Установить фоновое изображение.
Примечание. Необходимо ввести правильное имя и изображение-заполнитель.
Выравнивание изображения
Помещает художественное изображение на задний план. Или вернуть набор этого свойства.
- fmPictureAlignmentTopLeft — 0 — Верхний левый угол.
- fmPictureAlignmentTopRight — 1 — Верхний правый угол.
- fmPictureAlignmentCenter — 2 — Центр
- fmPictureAlignmentBottomLeft — 3 — Левый нижний угол.
- fmPictureAlignmentBottomRight — 4 — Правый нижний угол.
UserForm1.PictureAlignment = fmPictureAlignmentTopRight
PictureSizeMode
Указывает способ отображения фонового изображения в элементе управления, форме или на странице.
- fmPictureSizeModeClip — 0 — обрезать часть изображения, выходящую за пределы формы или страницы (значение по умолчанию).
- fmPictureSizeModeStretch — 1 — растягивает изображение, чтобы заполнить форму или страницу. Этот параметр может искажать изображение в горизонтальном или вертикальном направлении.
- fmPictureSizeModeZoom — 3 — Увеличить картинку, но не искажать ее ни по горизонтали, ни по вертикали.
Frame1.PictureSizeMode = fmPictureSizeModeStretch
Примечание. Сначала необходимо загрузить изображение.
Разбиение изображения
Позволяет расположить изображение в форме или на странице в виде плитки.
- Верно: изображение будет многократно отображаться в виде плитки на заднем плане.
- False — изображение не отображается повторно в фоновом режиме (настройка по умолчанию).
UserForm1.PictureTiling = True
Полосы прокрутки
Указывает, имеет ли элемент управления, форма или страница вертикальную полосу прокрутки, горизонтальную полосу прокрутки или и то, и другое.
- fmScrollBarsNone — 0 — полосы прокрутки не показывать (по умолчанию).
- fmScrollBarsHorizontal — 1 — отображать горизонтальноползунок.
- fmScrollBarsVertical — 2 — Отображать вертикальную полосу прокрутки.
- fmScrollBarsBoth — 3 — Отображение горизонтальной и вертикальной полос прокрутки.
UserForm1.ScrollBars = fmScrollBarsBoth
Высота прокрутки
Указывает общую площадь в точках, которая может отображаться с помощью ползунков данного элемента управления, формы или страницы.
Прокрутка влево
Задает расстояние в пунктах от левого края видимой формулировки до левого края логической формулировки, страницы или элемента управления. См. ScrollTop.
Вверху прокрутки
Задает расстояние в пунктах от верхнего края видимой формулировки до верхнего края логической формулировки, страницы или элемента управления. Кажется, формула перемещается (если полосы прокрутки включены)
Примечание. При тестировании включите полосы прокрутки и увеличьте область ScrollHeight.
Ширина прокрутки
Указывает общую ширину области в пунктах, которую можно отобразить с помощью ползунков данного элемента управления, формы или страницы.
Специальный эффект
Возвращает или определяет специальные эффекты объекта.
- fmSpecialEffectFlat 0
- fmSpecialEffectRaised 1
- fmSpecialEffectSunken 2
- fmSpecialEffectEtched 3
- fmSpecialEffectBump 6
UserForm1.SpecialEffect = fmSpecialEffectFlat
UserForm1.SpecialEffect = 6
StateSpecialEffect = UserForm1.SpecialEffect
StartUpPosition
Возвращает или устанавливает значение заполнителя пользовательской формы при ее первом отображении.
- Вручную 0 Настройка компьютера не указана.
- CenterOwner 1 Центрирует элемент, которому принадлежит пользовательская форма.
- CenterScreen 2 Центрирует себя в пределах всего экрана.
- WindowsDefault 3 Он будет расположен в верхнем левом углу экрана.
UserForm1.StartUpPosition = WindowsDefault
Дополнительная информация об объекте.
Поместите объект от верхнего края. Или узнайте, как расположен объект.
placetop = UserForm1.Top
UserForm1.Top = 12
Что это за кнопка
Возвращает логическое значение, которое определяет, появляется ли кнопка «Что это такое» на панели UserForm. Его можно прочитать только на лету.
- Верно — отображается кнопка «Что это за помощь».
- False — (по умолчанию) удалена кнопка «Что это за справка».
UserForm1.WhatsThisButton = True
Что это за помощь
Возвращает логическое значение, указывающее, использует ли контекстно-зависимая справка окно справки Windows 95 или главное окно справки. Его можно прочитать только во время работы.
- True Приложение будет использовать один из методов доступа What’s This, чтобы запустить справку Windows и найти команду, указанную в свойстве WhatsThisHelpID.
- False (по умолчанию) Приложение использует клавишу F1 для запуска справки Windows и поиска HelpContextID, указанного свойством.
UserForm1.WhatsThisHelp = True
Ширина
Возвращает ширину объекта или устанавливает его высоту.
UserForm1.Width = 110
Ширина = UserForm1.Width
Происходит при изменении значения свойства Zoom (увеличение/увеличение).
Для скачивания
Готовый пример для скачивания: Пользовательская форма — примеры использования
Рисунок — для тестов с формулой.
Контент
Описание свойства объекта UserForm1 закончено 🙂
Статья обновлена: 19.09.2020 11:06
Если
Помог ли этот веб-сайт сэкономить вам время и деньги? Помог ли он решить проблему? Готовы ли вы предоставить символическое вознаграждение за дальнейшее развитие? Выберите форму вознаграждения, которая вам подходит.
Павел Ласбк — автор сайта
Microsoft Office (Word, Excel, Google Sheets , PowerPoint) с 2000 г.(с 2004 года на этом домене) — В 2017 году я получил престижную награду MVP от Microsoft (пока я единственный от ИР в категории Excel). Я также делюсь своими знаниями и опытом онлайн в видеороликах для SEDUO . В компаниях преподаю и консультирую , работаю в МУНИ. Я создаю этот сайт более 15 лет. Существует более 1000 бесплатных инструкций, советов и рекомендаций, включая более 250 различных шаблонов и рабочих книг.
Комментарии
Джон
Добавлено: 18.01.13 13:24
Я не знаю, где лучше всего задать свой вопрос. Frame1.enabled «размывает» все объекты внутри, а не только имя кадра? я думаю
Павел Ласбак
Добавлено: 18.01.13 16:06
Хонзе: Я не знаю об этом. Лично я «затуманиваю» каждый объект отдельно.
Джон
Добавлено: 25.01.13 10:02
Каждый объект отдельно, например так: Dim y As Control For Each y In Frame1.Controls y.Enabled = True Дальше ничего лучше не нашел.
Павел Ласбак
Добавлено: 25.01.13 16:58
To Honza: Я тоже искал и ничего не нашел (понадобилось только один раз за последние несколько лет), я бы сказал, что это нестандартный запрос.
Джон
Добавлено: 28.01.13 15:27
Разве элементы нельзя контролировать в массе, когда они объединены в группу? Но я даже не смог найти название этой группы в окне VBA. Тогда это будет Group1.enabled = false.
Карольна
Добавлено: 03.03.14 17:33
Я хотел бы посоветовать, можно ли получить доступ к следующему через код определенной пользовательской формы. в текстовые поля из других пользовательских форм. У меня есть набор связанных пользовательских форм с использованием кнопок «Далее» и «Назад», и мне нужно, чтобы тексты из всех текстовых полей, расположенных на всех пользовательских формах, удалялись только тогда, когда я нажимаю кнопку «Готово» на последнем. Большое спасибо
Добавлено: 12.04.14 14:48
Я хотел бы спросить, можно ли пересечьсвойства пользовательской формы, чтобы установить порядок отдельных окон так же, как я могу изменить порядок элементов (метка, изображение.) в форме? Заранее спасибо.
Пол в Каролину
Добавлено: 14.02.15 17:53
Конечно, можно. В процедуре кнопки Готово вставьте вот так: с userform1 . Текстовое поле1 = «». Textbox2 = «» End with with userform2 . Текстовое поле1 = «». Textbox2 = «» Конец с
Пол в Каролину
Добавлено: 14.02.15 19:49
Где немного прозрачнее
Рекомендую
Добавлено: 16.02.15 07:27
здравствуйте .. помогите пожалуйста с проблемой .. буду создавать приложение в VBA .. у меня есть форма в которой много текстовых полей .. эти текстовые поля должны отображать содержимое ячеек в Sheet2 .. макрос меняет содержимое ячеек Листа 2..при запуске формы..содержимое текстбокса не меняется..нужно как-то узнать..как обновить..(обновить) форму.. чтобы после каждого изменения в ячейке оно сразу отражалось изменением в соответствующем текстовом поле. Я хочу, чтобы пользователь не имел доступа к ячейкам. .сразу после включения приложение сворачивается и можно работать только в формах..это из-за приложения..где разные пользователи имеют доступ с помощью пароля..помогите пожалуйста в конце..я все придумали и написали. .но я так и не знаю как восстановить содержимое тексбокса ..
Пол, рекомендую
Добавлено: 20.02.15 13:45
Здравствуйте, я предполагаю, что вы запускаете макрос, который выполняет операции, которые затем изменяют значения ячеек в вашем листе, например, из данной пользовательской формы. с помощью кнопки (CommandButton). Тогда должно быть достаточно войти в процедуру этой кнопки, или макросы, которые изменяют значения в ячейках, устраивают чтение новых значений и отображение в текстовых полях, например. следующим образом:
В случае, если лист2
отображается до минимизации
Если отображается другой лист, и вы хотите прочитать значения из ячеек листа2
кадрлейн
Добавлено: 05.03.1511:39
привет, я создал расширенную пользовательскую форму Excel. Посмотреть можно: http://adf.ly/138E1W
АннаД
Добавлено: 08.04.15 15:03
Добрый день. Если я спрашиваю банальность, прошу прощения. Я самоучка и работаю в основном только на базе этих сайтов (отлично!). Как мне узнать в VBA, что форма была завершена крестиком, а не кнопкой OK, которую я поставил? Спасибо и желаю вам крепкого здоровья
Милан К
Добавлено: 09.05.15 19:56
Добрый день. У меня такой вопрос. Можно ли в VBA узнать текущий размер формы, приложения и всего экрана? Я понимаю.
Мать
Добавлено: 12.11.15 15:31
Есть ли какая-нибудь команда, чтобы узнать, активна форма пользователя или нет? спасибо
Дж. Питер
Добавлено: 17.08.16 12:08
Добрый день. Есть ли у кого опыт с исчезающей из памяти формулировкой, т.е. что его вообще нельзя отобразить даже в VBA? Спасибо