ВГОРУ

VBA-Урок 12.1. Користувацькі форми (UserForm)

Об’єкт UserForm — це вікно або діалогове вікно, яке є частиною інтерфейсу користувача програми.

UserForm дозволяє створювати вікна або діалогові вікна у вашому проекті. На формі ви малюєте та можете бачити елементи керування.

Форми користувача мають властивості, які визначають зовнішній вигляд, такі як положення, розмір, колір та аспекти їхньої поведінки.

Під час розробки форми:

  • Кожне вікно форми має кнопки "Згорнути", "Розгорнути" та "Закрити".
  • Ви можете переглянути сітку форми та визначити розмір ліній сітки на вкладці "Загальні" діалогового вікна "Параметри".
  • Використовуйте кнопки на панелі інструментів, щоб намалювати елементи керування на формі. На вкладці "Загальні" діалогового вікна "Параметри" можна настроїти елементи керування так, щоб вони вирівнялися з сіткою форми.

  • Створення форми (UserForm)

    Щоби додати UserForm, потрібно зробити те саме, коли ми додаємо новий модуль:

    Після цього з'явиться форма (UserForm) та панель інструментів (Toolbox):

    Якщо ви не бачите вікно Властивостей (Properties), переконайтесь, що воно відображено і тоді почніть з редагування назви UserForm (так, щоби ви її легко могли знайти пізніше):

    Форма (UserForm) має свої власні події, подібно, як має робоча книга або аркуш. Щоби додати подію, двічі клацніть по UserForm.

    Тепер давайте створимо дві події, щоби подивитись як це працює. Перша подія визначатиме початковий розмір UserForm, і друга - збільшуватиме її розміри на 50 пікселів, коли користувач клацає.

    Подія UserForm_Initialize спрацьовуватиме коли UserForm запускається:

    Private Sub UserForm_Initialize()
        my_userform.Height = 100
        my_userform.Width  = 100
    End Sub
    

    Для спрощення коду, ми можемо використати Me замість назви UserForm (бо цей код є у UserForm, з якою ми працюємо):

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    

    Друга подія виникатиме коли користувач клікатиме по UserForm:

    Private Sub UserForm_Initialize()
        Me.Height = 100
        Me.Width  = 100
    End Sub
    
    Private Sub UserForm_Click()
        Me.Height = Me.Height + 50
        Me.Width  = Me.Width + 50
    End Sub
    

    Запуск форми (UserForm)

    Щоби запустити UserForm в процедурі, використайте Show:

    Sub show_userform()
         my_userform.Show
    End Sub