Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лаб_раб по VBA

.docx
Скачиваний:
15
Добавлен:
18.03.2016
Размер:
30.53 Кб
Скачать

Лабораторная работа № 1

«Работа с Excel и VBA»

Задание1. Создать программу с помощью VBA для заполнения базы данных по клиентам туристического агентства

Ход работы

Откройте редактор VBA (Разработчик→Visual Basic). Добавьте форму с помощью команды Insert→UserForm. Добавьте на форму необходимые компоненты согласно образцу.

При нажатии на кнопку ОК программа должна:

  1. Заполнить переменные введенными значениями

  2. Ввести полученные данные в соответствующую строку рабочего листа

Поэтому запишем следующий код:

Private Sub CommandButton1_Click()

' Объявление переменных

Dim Фамилия As String * 20

Dim Имя As String * 20

Dim Пол As String * 3

Dim ВыбранныйТур As String * 20

Dim Оплачено As String * 3

Dim Фото As String * 3

Dim Паспорт As String * 3

Dim Срок As String * 3

Dim НомерСтроки As Integer

' НомерСтроки - номер первой пустой строки рабочего листа

НомерСтроки = Application.CountA(ActiveSheet.Columns(1)) + 1

' Считывание информации из диалогового окна в переменные

With UserForm1

Фамилия = .TextBox1.Text

Имя = .TextBox2.Text

Срок = .TextBox3.Text

If .OptionButton1.Value = True Then

Пол = "Муж"

Else

Пол = "Жен"

End If

If .CheckBox1.Value = True Then

Оплачено = "Да"

Else

Оплачено = "Нет"

End If

If .CheckBox2.Value = True Then

Фото = "Да"

Else

Фото = "Нет"

End If

If .CheckBox3.Value = True Then

Паспорт = "Да"

Else

Паспорт = "Нет"

End If

ВыбранныйТур = .ComboBox1.List(.ComboBox1.ListIndex, 0)

End With

' Ввод данных в строку с номером НомерСтроки рабочего листа

With ActiveSheet

.Cells(НомерСтроки, 1).Value = Фамилия

.Cells(НомерСтроки, 2).Value = Имя

.Cells(НомерСтроки, 3).Value = Пол

.Cells(НомерСтроки, 4).Value = ВыбранныйТур

.Cells(НомерСтроки, 5).Value = Оплачено

.Cells(НомерСтроки, 6).Value = Фото

.Cells(НомерСтроки, 7).Value = Паспорт

.Cells(НомерСтроки, 8).Value = Срок

End With

End Sub

При загрузке формы программа должна:

  1. Заполнить ComboBox значениями

  2. Проверить есть ли соответствующие заголовки и закрепить первую строку(для этого реализована процедура ЗаголовокРабочегоЛиста)

Private Sub UserForm_Initialize()

ЗаголовокРабочегоЛиста

With ComboBox1

.List = Array("Прага", "Турция", "Париж")

.ListIndex = 0

End With

End Sub

Процедура ЗаголовокРабочегоЛиста

Sub ЗаголовокРабочегоЛиста()

If Range("A1").Value = "Фамилия" Then

Range("A2").Select

Exit Sub

End If

ActiveSheet.Cells.Clear

Range("A1:H1").Value = Array("Фамилия", "Имя", "Пол", "Выбранный Тур", "Оплачено", "Фото", "Паспорт", "Срок")

' Закрепляется первая строка

Range("2:2").Select

ActiveWindow.FreezePanes = True

Range("A2").Select

End Sub

Задание 2. Измените программу, добавив ввод стоимости тура.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]