Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скрытые перемещения.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
1.26 Mб
Скачать

Заставка приветствия реализованная на UserForm

  • Видеоурок по данной теме

И вот мы сделали программу, которой все пользуются. Но хотелось бы отличиться и приблизить программу к настоящей, полноценной. Многие замечали, что при открытии большинства программ, нам появляется заставка приветствия (например у Total Commander, AIMP и т.д.). Давайте сделаем подобие, пусть при открытии книги нам на 2 секунды появляется такая вот картинка.

Для этого создадим новый документ, в котором создадим новую форму с именем Zstvk.

Теперь фоном этой формы сделаем нашу картинку. В профиле формы выбираем пункт Picture. И загрузим выбранную картинку. Придаём форме необходимые размеры, пишем в шапке "Приветствие"(строка Caption в профиле).

Чтобы форма появлялась при открытии книги необходимо добавить в книгу макрос, который срабатыват при открытии книги. Производим двойной щелчок мыши по вкладке "Эта книга" и добавляем туда код, который будет вызывать форму.

Private Sub Workbook_Open()

Zstvk.Show

End Sub

Для того, чтобы форма появлялась на 2 секунды воспользуемся таймером. Перейдём в код формы и выберем макрос, который срабатывает при активации формы.

Теперь добавим в этот код таймер.

Private Sub UserForm_Activate()

Application.OnTime Now + TimeValue("00:00:02"), "Vigruzit"

End Sub

Vigruzit - это имя макроса, который сработает через 2 секунды. При помощи этого макроса заставка будет автоматически закрываться. Для этого добавим в книгу новый модуль и создадим в нём вот такой макрос.

Sub Vigruzit()

Unload Zstvk

End Sub

Ну вот, всё готово. Сохраняем книгу закрываем и открываем. При этом нам появляется созданное окно приветствия.

Выпадающий список ComboBox на UserForm

  • Видеоурок по данной теме

Создадим в проекте форму с выподающим списком, в которой будет указан список некоторых сотрудников, которых необходимо "обработать".

Работа с ComboBox

Итак, добавим форму - пункт меню Insert/UserForm, и назовём её к примеру Vibor. Теперь из панели инструментов добавим на неё ComboBox. Придаём ему необходимые размеры и расположение на форме. Ну и кнопку добавим на форму, которая и будет обрабатывать данные выпадающего списка.

Выделим мышкой добавленный ComboBox и зададим ему имя Sotrudniki, дабы понятно было.

Добавим на лист в столбец А список произвольных не повторяющихся имён и кнопку, которая будет вызывать созданную форму. Ниже показан код кнопки находящейся, на листе.

Private Sub CommandButton1_Click()

Vibor.Show

End Sub

Ну вот, сотрудники готовы. Теперь их как-то надо загрузить в ComboBox, который находится на форме. Для этого заходим в код формы. Щёлкаем правой кнопкой мыши по ней в окне Project-VBAProject и выбираем пункт View Code.

Выбираем из выподающего списка UserForm и Initialize. Это тот код который будет инициализировать форму Vibor при её загрузке.

Теперь воспользуемся обычным циклом, который будет перебирать имена и записывать их в Combobox-Sotrudniki. Код будет выглядеть таким образом:

Private Sub UserForm_Initialize()

Dim Imena As String

Dim a As Byte

For a = 2 To 9 Step 1

Imena = Cells(a, 1)

Sotrudniki.AddItem Imena

Next a

End Sub

Imena - это строковая переменная, в которую записываются имена; a - это числовая переменная, которая равна количеству имён (от 2 до 9, так как имена начинаются со второй строки и заканчиваются девятой строкой); Sotrudniki.AddItem Imena - добавляет в выпадающий список имена из переменной Imena; Cells(a, 1) - ячейка с переменной строкой и постоянным столбцом А, из которой заносятся имена в переменную Imena;

Теперь перейдём к самому главному - нажмём на кнопку Обработать, чтобы запустить форму.

Для того чтобы орабоать выбранное имя перейдём в код кнопки ОК и разместим следующий код.

Private Sub CommandButton1_Click() 'Кнопка Ок

If Sotrudniki.Text = "" Then

MsgBox "Сотрудник не выбран", vbCritical, "Ошибка"

Else

MsgBox "Производим обработку данных сотрудника " & _

Sotrudniki.Text, vbExclamation, "Пример"

End If

End Sub

В этом коде говорится, что если сотрудник не выбран, то нам появляется первое критическое сообщение, если имя сотрудника указано, то нам выводится второе сообщение.