- •1. Теоретические основы
- •Структура редактора vba
- •Интеллектуальные возможности vba
- •Встроенные диалоговые окна
- •2. Основы программирования на vba Допустимые имена
- •Переменные
- •Оператор присвоения
- •Оператор With
- •Операторы управления
- •Оператор условного перехода
- •Оператор выбора
- •Оператор For – Next
- •Оператор For Each
- •Оператор While – Wend
- •Оператор Do – Loop
- •Методы формы
- •События формы
- •Элементы управления
- •Общие свойства элементов управления
- •Общие методы элементов управления
- •Общие события элементов управления
- •Кнопка (CommandButton)
- •Поле (TextBox)
- •Надпись (Label)
- •Переключатель (OptionButton)
- •Список (ListBox)
- •Поле со списком (ComboBox)
- •Отображение встроенных диалоговых окон
- •4. Задания для самостоятельной работы Задание 1. Работа со встроенными диалоговыми окнами
- •Задание 2. Использование элементов управления набора вкладок и набора страниц
- •Задание 3. Добавление данных в таблицу Excel
- •Задание 4 Добавление данных на лист «Реализация товаров» Задание 5. Добавление и удаление данных (с применением вкладок)
- •Задание 6. Поиск и изменение данных в таблицах.
- •Задание 7. Сортировка данных Задание 8. Создание ведомости (отчета)
- •Задание 9. Оформление курсовой работы.
- •Требования к курсовой работе
- •Задания на курсовую работу
Задание 7. Сортировка данных Задание 8. Создание ведомости (отчета)
Создайте в рабочей книги 3 листа.
Лист «Прейскурант»:
Лист «Продавцы»:
Лист «Учет»:
Далее подготовьте лист «Выручка», обозначив заголовки столбцов:
Столбец «Выручка» будет рассчитываться Цена*Количество, Столбец «Сумма», будет выдавать суммарную выручку каждого продавца.
Создайте UserForm следующего вида:
ComboBox будет формироваться по листу «Продавцы». После выбора из списка фамилию продавца будет анализироваться таблица «Учет» и все данные о продажах, совершенных выбранным продавцом будут выходить на лист «Выручка».
Программный код привязан к кнопке «Создать ведомость»:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim h As Byte
If ComboBox1 = "" Then
h = MsgBox("Для вывода ведомости необходимо выделить из списка Ф.И.О. продавца", vbYes + vbQuestion, "Ведомость")
If h = vbYes Then GoTo 12 Else GoTo e
End If
Dim pr As Object, nx As Object
Dim prez As Object, nex As Object
Dim cur As Object, fol As Object
Dim nam As String, schet As String
Dim Y As Integer, r As Integer, j As Integer
nam = ComboBox1.Text
ActiveWorkbook.Sheets("Учет").Activate
ActiveWorkbook.Sheets("Выручка").Range("d3") = 0
For i = 3 To 15
ActiveWorkbook.Sheets("Выручка").Cells(i, 2) = ""
ActiveWorkbook.Sheets("Выручка").Cells(i, 3) = ""
ActiveWorkbook.Sheets("Выручка").Cells(i, 4) = ""
ActiveWorkbook.Sheets("Выручка").Cells(i, 5) = ""
ActiveWorkbook.Sheets("Выручка").Cells(i, 6) = ""
Next i
Sheets("Учет").Select
Set prez = Sheets("Учет").Range("b2")
Do Until IsEmpty(prez)
If prez = nam Then
kod = prez.Offset(0, 1)
kol = prez.Offset(0, 2)
Else: GoTo 1
End If
Sheets("Прейскурант").Select
Set cur = Sheets("Прейскурант").Range("a2")
Do Until IsEmpty(cur)
If cur = kod Then
namt = cur.Offset(0, 1)
z = cur.Offset(0, 2)
Exit Do
End If
Set fol = cur.Offset(1, 0)
Set cur = fol
Loop
Sheets("Выручка").Select
Set pr = Sheets("Выручка").Range("b3")
Do Until IsEmpty(pr)
Set nx = pr.Offset(1, 0)
Set pr = nx
Loop
Sheets("Выручка").Range("a3") = nam
pr.Value = kod
pr.Offset(0, 1) = namt
pr.Offset(0, 2).Value = z
pr.Offset(0, 3).Value = kol
summ = z * kol
pr.Offset(0, 4).Value = summ
1: Set nex = prez.Offset(1, 0)
Set prez = nex
Loop
Sheets("Выручка").Range("g3").Activate
ActiveCell.FormulaR1C1 = "=SUM(RC[-1]:R[196]C[-1])"
12 ComboBox1 = ""
UserForm1.Hide
e: End Sub
Private Sub UserForm_activate()
Dim pr As Object, X As Object
UserForm1.ComboBox1.Clear
ActiveWorkbook.Sheets("Продавцы").Select
Set pr = ActiveSheet.Range("a2")
Do While Not IsEmpty(pr)
Set X = pr.Offset(1, 0)
ComboBox1.AddItem pr
Set pr = X
Loop
End Sub
Задание 9. Оформление курсовой работы.
Все созданные кнопки для вызова макросов должны быть расположены в верхней части рабочего листа (но не вплотную к основной базе данных). Или на отдельной UserForm. Например:
На каждом рабочем листе скрыть сетку. Для этого вызовете Сервис – Параметры – Убрать флажок «Сетка».
Все таблицы оформить границами и заливкой.
Один из листов должен иметь название «Главное меню» и содержать кнопки перехода на все листы курсовой работы, кнопку выхода из EXCEL, и кнопку «Сведения об авторе». На листе «Главное меню» также скрыть сетку и оформить рисунок подложки. Для этого использовать меню Формат – Лист – Подложка. Кнопку «Сведения об авторе» свяжем с пользовательской формой.
Для этого:
- вызовете редактор Visual Basic с помощью сочетания клавиш Alt+F11
- создайте пользовательскую форму: Insert – UserForm На экране появится форма с набором инструментов:
В левой нижней части найдите окно свойств созданной вами формы:
И измените свойство Caption, вместо UserForm1 напишите «Сведения об авторе»
- выберете инструмент Label (надпись) растяните на форме и внесите все необходимые сведения – название курсовой работы, Фамилию, имя автора и т.д.
Например, вы получите:
Для того чтобы эта форма появлялась на экране вернитесь в EXCEL, на лист «Главное меню». Создайте макрос Сервис – Макрос – Начать запись. Дайте макросу имя «Автор». Нажмите «Относительная ссылка» и Остановите запись.
Затем Сервис – Макрос – Макросы (выберете макрос «Автор») – войти. Вы попали в стандартный модуль Visual Basic:
Sub Автор()
' Макрос записан
End Sub
Необходимо добавить строчку: UserForm1.Show:
Sub Автор()
'
' Автор. Макрос
UserForm1.Show
End Sub
Затем вернитесь в EXCEL на лист «Главное меню». Через панель инструментов «Формы» создайте кнопку, дайте ей имя «Сведения об авторе» и привяжите макрос «Автор».
При загрузке курсовой работы все листы должны быть скрыты (кроме листа «Главное меню» и автоматически должен загружаться лист «Главное меню». Для этого через меню Формат – Лист – Скрыть скройте все рабочие листы курсовой работы. Войдите в редактор Visual Basic (Alt+F11). И справа в окне проекта:
Сделайте двойной щелчок на элементе «Эта книга» или – если версия английская – This Books. Вы попали в окно редактирования кода. Наберите следующую программу:
Private Sub Workbook_Open()
Sheets("Главное меню").Activate
MsgBox "Вас приветствует информационно- аналитическая система...."
End Sub