
vba / vba
.docxМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
КАФЕДРА 41
Отчет Защищен с оценкой
Руководитель
Ассистент |
|
|
|
Б.К. Акопян |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
Отчёт о практической работе |
РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКИХ ФОРМ СРЕДСТВАМИ VBA |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. |
4116 |
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2022г.
Цель работы: освоение методов создания пользовательских диалоговых окон.
Ход работы
Были созданы листы Sheet1, Sheet2, на них созданы таблицы (Рис. 1, 2).
Рис. 1 – Таблица на листе Sheet1
Рис. 2 – Таблица на листе Sheet2
Была создана UserForm и настроена в соответствии с заданием. Для настройки использовались: Label, TextBox, ListBox, CommandButton (Рис. 3).
Рис. 3 – Созданная и настроенная UserForm
Был создан код для каждой из кнопки:
Кнопка «Ввести список изделий». Добавляет список изделий для выбора в ListBox (Рис. 4)
Рис. 4 – Код кнопки «Ввести список изделий»
Кнопка «Выбрать изделие из списка». Добавляет выбранное изделие в графу «Название изделия» TextBox2 (Рис. 5).
Рис. 5 – Код кнопки «Выбрать изделие из списка»
Кнопка «Заполнить». Находит первую незаполненную строку и вводит в неё данные из UserForm в соответствии с типом данных на обе таблицы. (Рис. 6).
Рис. 6 – Код кнопки «Заполнить»
Кнопка «Выход». Закрывает UserForm (Рис. 7).
Рис. 7 – Код кнопки «Выход»
Была создана кнопка «Начало работы» для вызова UserForm (Рис. 8, 9)
Рис. 8 – Кнопка «Начало работы»
Рис. 9 – Заполненная форма
Результат работы приложения виден на рис. 10 и 11
Рис. 10 – Результат работы для Sheet1
Рис. 11 – Результат работы для Sheet2
Была создана процедура BeforeClose для сохранения и вывода сообщения перед закрытием книги (Рис. 11, 12)
Рис. 11 – Код для сохранения данных и вывода сообщения
Рис. 12 – Результат работы
Программный код VBA
Кнопка «Выбрать изделие из списка»:
Private Sub CommandButton1_Click()
Select Case ListBox1.ListIndex
Case 0: TextBox2.Text = "Брошь с сапфиром"
Case 1: TextBox2.Text = "Золотое кольцо"
Case 2: TextBox2.Text = "Золотые серьги"
Case 3: TextBox2.Text = "Кольцо с изумрудом"
Case 4: TextBox2.Text = "Кольцо с сапфиром"
Case 5: TextBox2.Text = "Платиновый браслет"
Case 6: TextBox2.Text = "Серебряные серьги"
End Select
End Sub
Кнопка «Ввести список изделий»:
Private Sub CommandButton2_Click()
With ListBox1
.AddItem "Брошь с сапфиром"
.AddItem "Золотое кольцо"
.AddItem "Золотые серьги"
.AddItem "Кольцо с изумрудом"
.AddItem "Кольцо с сапфиром"
.AddItem "Платиновый браслет"
.AddItem "Серебряные серьги"
End With
End Sub
Кнопка «Выход»:
Private Sub CommandButton3_Click()
End
End Sub
Кнопка «Заполнить»:
Private Sub CommandButton5_Click()
Dim Lrow, Lrow2 As Long
Lrow = Worksheets("Sheet1").Cells(Worksheets("Sheet1").Rows.Count, 1).End(xlUp).Row + 1
Lrow2 = Worksheets("Sheet2").Cells(Worksheets("Sheet2").Rows.Count, 1).End(xlUp).Row + 1
Sheets(1).Cells(Lrow, 1).Value = CInt(TextBox1.Value)
Sheets(1).Cells(Lrow, 2).Value = TextBox2.Value
Sheets(1).Cells(Lrow, 3).Value = CInt(TextBox3.Value)
Sheets(1).Cells(Lrow, 4).Value = CInt(TextBox4.Value)
Sheets(1).Cells(Lrow, 5).Value = CInt(TextBox5.Value)
Sheets(1).Cells(Lrow, 6).Value = TextBox6.Value
Sheets(1).Cells(Lrow, 7).Value = CInt(TextBox7.Value)
Sheets(1).Cells(Lrow, 8).Value = CDate(TextBox8.Value)
Sheets(1).Cells(Lrow, 9).Value = CInt(TextBox9.Value)
Sheets(2).Cells(Lrow2, 1).Value = CInt(TextBox1.Value)
Sheets(2).Cells(Lrow2, 2).Value = TextBox2.Value
Sheets(2).Cells(Lrow2, 3).Value = CInt(TextBox3.Value)
Sheets(2).Cells(Lrow2, 4).Value = CInt(TextBox4.Value)
TextBox1.Value = "": TextBox2.Value = "": TextBox3.Value = "": TextBox4.Value = "":
TextBox5.Value = "": TextBox6.Value = "": TextBox7.Value = "": TextBox8.Value = "":
TextBox9.Value = ""
End Sub
Сохранение и вывод сообщения:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.Save
MsgBox "До встречи!"
End Sub
Вывод: в ходе практической работы, я освоил методы создания пользовательских диалоговых окон с использованием элементов Label, Listbox, TextBox, CommandButton и др.
Источники:
https://lms.guap.ru/new/mod/resource/view.php?id=97096