- •1.Программирование в vba. Объекты Application, Workbook, Worksheet и Range
- •2.Редактор Visual Basic
- •2.1.Запуск программы
- •2.1.1.Панель инструментов Стандарт
- •2.2.Отладка программ
- •2.2.1.Ошибки при написании программ
- •2.2.1.1.Ошибки компиляции
- •2.2.1.2.Ошибки выполнения
- •2.2.2.Инструкция Option Explicit
- •2.2.3.Пошаговое выполнение программ
- •2.2.4.Точка останова (Toggle Breakpoint)
- •2.2.5.Отслеживание значений свойств и переменных
- •3.Объекты Application, Workbook, Worksheet и Range. Встроенные функции Dir, MkDir, MsgBox, InputBox
- •3.1.Программа СлучайныеЧисла
- •3.2.Программа УдалениеКниги
- •3.3.Программа СлучайныеЧислаОформление
- •4.Переменные
- •4.1.Объектные переменные
- •4.2.Пользовательский тип данных
- •5.Массивы
- •5.1.1.Функция Erase
- •5.1.2.Функции lBound и uBound
- •6.Подпрограммы. Функции. Область видимости переменных, подпрограмм и функций.
- •6.1.Вызов подпрограммы
- •6.2.Передача данных при вызове программы
- •6.2.1.Передача по ссылке и по значению
- •6.3.Функции
- •6.4.Область видимости переменных
- •6.4.1.Переменные уровня процедуры
- •6.4.2.Переменные уровня модуля
- •6.4.3.Переменные уровня проекта
- •6.4.4.Сохраняемые переменные
- •6.4.5.Область видимости подпрограмм и функций
- •6.4.6.Сохраняемые подпрограммы и функции
- •7.Управляющие структуры: If-Then-Else, Select Case, For-Next, While-Wend, Do-Loop, For-Each-Next
- •8.Инструкция With
- •9.Встроенные функции vba
- •9.1.Математические функции
- •9.2.Функции проверки типов
- •9.3.Функции преобразования форматов
- •9.4.Функции обработки строк
- •9.5.Функции времени и даты
- •10.Обработка ошибок: инструкция On Error
- •11.Пользовательский интерфейс
- •11.1.Создание формы (UserForm) и добавление кнопок (СоmmandButton)
- •11.2.Вывод формы на экран (запуск формы)
- •11.3.Поле (TextBox) и надпись (Label).
- •11.4.Список (ListBox) и поле со списком (ComboBox)
- •11.4.1.Список (ListBox)
- •11.4.2.Определение выбранных элементов списка
- •11.4.3.Поле со списком (ComboBox)
- •11.4.4.Определение выбранного элемента
- •11.4.5.Создание взаимосвязанных элементов управления
- •11.5.Флажок (CheckBox)
- •11.6.Выключатель (ToggleButton)
- •11.7.Переключатель (OptionButton)
- •11.8.Счетчик (SpinButton)
- •11.9.Создание нестандартных меню и панелей инструментов.
- •11.9.1.Пример создания/удаления панели инструментов
- •11.9.2.Пример создания/удаления меню
- •12.События объектов Workbook и Worksheet
- •12.1.События объекта Workbook
- •12.2.События объекта Worksheet
- •Домашнее задание №1
- •Домашнее задание №2 и №3. Типовые варианты.
- •Вариант 1. Домашнее задание №2
- •Списочный состав института
- •Домашнее задание №3
- •Вариант 2. Домашнее задание №2
- •Списочный состав института
- •Домашнее задание №3
- •Вариант 3. Домашнее задание №2
- •Домашнее задание №3
- •Вариант 4. Домашнее задание №2
- •Домашнее задание №3
- •Вариант 5. Домашнее задание №2
- •Домашнее задание №3
Домашнее задание №2 и №3. Типовые варианты.
Требования к оформлению ДЗ 2 и 3
Домашние задания 2 и 3 должны быть распечатаны и включать в себя:
Титульный лист.
Оглавление.
Постановку задачи.
Листинг программы, напечатанный в редакторе VBA.
План тестирования программы.
Придуманное задание.
Вариант 1. Домашнее задание №2
Написать программу, которая формирует список уволившихся сотрудников института по факультетам.
Постановка задачи:
В базе данных Excel Кадры.xls содержатся данные о сотрудниках института. БД хранятся в папке C:\Институт и содержат следующую информацию:
Списочный состав института
Факуль-тет |
Кафед- ра |
Ф.И.О. |
Должность |
Разряд |
Коэф. |
Оклад |
Дата рожд. |
Дата поступ- ления |
Дата уволь- нения |
ИиЭ |
АСУ |
Абрамов П.Л. |
Доцент |
14 |
11 |
1 100р. |
23.09.1955 |
20.12.1980 |
21.01.2012 |
ИиЭ |
АСУ |
Александров В.Н. |
Доцент |
14 |
11 |
1 100р. |
19.08.1954 |
01.03.1978 |
|
ИиЭ |
АСУ |
Кузнецова С.Ю. |
Доцент |
15 |
12 |
1 200р. |
20.01.1957 |
13.10.1980 |
|
ИиЭ |
АСУ |
Маликов Е.А. |
Доцент |
14 |
11 |
1 100р. |
17.01.1963 |
07.06.1993 |
|
ИиЭ |
АСУ |
Перцов В.А. |
Доцент |
15 |
12 |
1 200р. |
12.11.1958 |
14.09.1979 |
|
ИиЭ |
АСУ |
Петрова И.И. |
Доцент |
14 |
11 |
1 100р. |
14.07.1968 |
22.08.2001 |
|
ИиЭ |
АСУ |
Чернов М.П. |
Доцент |
14 |
11 |
1 100р. |
27.01.1967 |
14.09.2002 |
|
ИиЭ |
АСУ |
Кузин Р.А. |
Профессор |
17 |
15 |
1 500р. |
30.11.1940 |
07.09.1965 |
|
ИиЭ |
АСУ |
Иванов П.В. |
Ст.преп. |
13 |
11 |
1 100р. |
12.05.1973 |
06.11.1996 |
|
ИиЭ |
КИК |
Катин А.Н. |
Доцент |
15 |
12 |
1 200р. |
20.12.1957 |
02.02.1987 |
22.01.2007 |
ИиЭ |
КИК |
Кругликов А.А. |
Доцент |
15 |
12 |
1 200р. |
12.04.1945 |
04.08.1970 |
|
ИиЭ |
КИК |
Малахов О.Е. |
Доцент |
15 |
12 |
1 200р. |
17.01.1940 |
25.09.1965 |
|
ИиЭ |
КИК |
Крылов А.Г. |
Профессор |
16 |
15 |
1 500р. |
13.02.1933 |
24.08.1958 |
|
ИиЭ |
КИК |
Морозов П.Н. |
Профессор |
17 |
15 |
1 500р. |
01.03.1948 |
11.11.1980 |
|
ИиЭ |
КИК |
Мелихова О.Н. |
Ст.преп. |
13 |
11 |
1 100р. |
24.04.1959 |
23.09.2000 |
12.09.2007 |
ИиЭ |
КИК |
Марков П.И. |
Ст.преп. |
13 |
11 |
1 100р. |
20.07.1961 |
13.09.2004 |
|
ИиЭ |
КИК |
Певцов Р.Г. |
Ст.преп. |
13 |
11 |
1 100р. |
19.12.1974 |
10.08.2001 |
|
ИиЭ |
КИК |
Точкин С.Я. |
Ст.преп. |
13 |
10 |
1 000р. |
21.08.1976 |
03.01.2000 |
|
ТФ |
МАМП |
Дербенев П.И. |
Доцент |
14 |
11 |
1 100р. |
02.04.1950 |
19.01.1999 |
|
ТФ |
МАМП |
Суздальцев В.И. |
Доцент |
14 |
11 |
1 100р. |
11.11.1956 |
22.12.1998 |
|
ТФ |
МАМП |
Перышкин С.П. |
Профессор |
16 |
14 |
1 400р. |
25.02.1938 |
23.11.1997 |
|
ТФ |
МАМП |
Улюкаев С.В. |
Профессор |
16 |
14 |
1 400р. |
21.02.1947 |
21.11.1997 |
|
ТФ |
ОМД |
Карпов С.А. |
Доцент |
15 |
12 |
1 200р. |
14.11.1950 |
14.12.1990 |
|
ТФ |
ОМД |
Левкин А.П. |
Доцент |
14 |
11 |
1 100р. |
24.07.1968 |
25.01.2003 |
|
ТФ |
ОМД |
Балашова Е.Н. |
Профессор |
17 |
15 |
1 500р. |
09.05.1957 |
06.09.2002 |
|
Требуется (с помощью средств VBA) разработать программное обеспечение, позволяющее получать список уволившихся сотрудников следующего вида:
Список уволившихся сотрудников за … год по факультету …
№ п.п. |
Кафедра |
Ф.И.О. |
Должность |
Дата рожд. |
|
|
|
|
|
|
|
|
|
|
Сотрудник считается уволившимся, если в поле Дата увольнения присутствует год, указанный пользователем в поле со списком Выберите год: (см. форму).
Сохранить его в файле Уволившиеся сотрудники-9999.xls (где 9999 – формат года) на листе Список. Книга должна иметь один лист.
Количество отформатированных строк в итоговой таблице, не считая заголовка и шапку, должно совпадать с количеством сформированных записей.
Файл поместить в папку C:\Институт.
Запрос на создание списка уволившихся сотрудников института реализовать с помощью формы, которая имеет следующий вид:
В списке Выберите год: пользователь указывает год.
Список поля Выберите год: должен содержать 2 элемента: номера предыдущего и текущеего годов. По умолчанию – номер предыдущего года.
В текстовом поле Укажите факультет: пользователь вводит название факультета.
Кнопку ОК связать с клавишей [Enter], кнопку Отмена – с клавишей [Escape].
В случае отсутствия факультета, указанного пользователем, выдать сообщение: «Указанный Вами факультет отсутствует!» и завершить выполнение программы.
В случае отсутствия уволившихся сотрудников конечный файл не формировать, а выдать информационное сообщение следующего вида: «Сотрудники, уволившиеся с работы в … году по факультету … отсутствуют!»
Программа должна находиться в файле Программа-Уволившиеся сотрудники.xls.
Предусмотреть обработку событий, связанных с различными состояниями исходных БД и конечного файла: закрыты, открыты, не существуют. При наличии конечного файла выдать запрос на его замену.
Оформить программу согласно требованиям, изложенным на лекциях.
Придумать свой вариант задания.
