Скачиваний:
0
Добавлен:
03.06.2024
Размер:
170.43 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»

КАФЕДРА 41

Отчет Защищен с оценкой

Руководитель

Ассистент

Б.К. Акопян

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

Отчёт о практической работе

РАЗРАБОТКА ПОЛЬЗОВАТЕЛЬСКИХ ФОРМ СРЕДСТВАМИ VBA

РАБОТУ ВЫПОЛНИЛ

СТУДЕНТ ГР.

4116

подпись, дата

инициалы, фамилия

Санкт-Петербург 2022г.

Цель работы: освоение методов создания пользовательских диалоговых окон.

Ход работы

Были созданы листы Sheet1, Sheet2, на них созданы таблицы (Рис. 1, 2).

Рис. 1 – Таблица на листе Sheet1

Рис. 2 – Таблица на листе Sheet2

Была создана UserForm и настроена в соответствии с заданием. Для настройки использовались: Label, TextBox, ListBox, CommandButton (Рис. 3).

Рис. 3 – Созданная и настроенная UserForm

Был создан код для каждой из кнопки:

  1. Кнопка «Ввести список изделий». Добавляет список изделий для выбора в ListBox (Рис. 4)

Рис. 4 – Код кнопки «Ввести список изделий»

  1. Кнопка «Выбрать изделие из списка». Добавляет выбранное изделие в графу «Название изделия» TextBox2 (Рис. 5).

Рис. 5 – Код кнопки «Выбрать изделие из списка»

  1. Кнопка «Заполнить». Находит первую незаполненную строку и вводит в неё данные из UserForm в соответствии с типом данных на обе таблицы. (Рис. 6).

Рис. 6 – Код кнопки «Заполнить»

  1. Кнопка «Выход». Закрывает 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

Соседние файлы в папке vba
  • #
    03.06.2024170.43 Кб0vba.docx
  • #
    03.06.202429.85 Кб1vba.xlsm