- •Министерство науки и образования Республики Казахстан
- •Работа с пакетом msOffice:MsWord. Лабораторная работа № 1 Таблицы. Автофигуры. Редактор формул. Оглавление. Колонтитулы.
- •Основные понятия
- •Задания
- •Ms word
- •Работа с пакетом ms Office: Ms Excel Лабораторная работа № 2 Интерфейс среды Ms Excel. Средства управления Excel. Организация данных Ms Excel. Типы данных Ms Excel. Работа с формулами.
- •Создание внедренных диаграмм.
- •Создание диаграмм на отдельном листе
- •Настройка элементов диаграммы
- •Быстрый способ создания диаграмм
- •Построения графика
- •Итоги Зимних Олимпийских игр 2010 года в Ванкувере
- •Лабораторная работа № 3 Абсолютные и относительные ссылки. Вычисления с помощью функций. Форматирование таблицы.
- •Работа с пакетом ms Office: Ms Access Лабораторная работа № 4 Объекты субд Access. Разработка таблиц и запросов в Ms Access. Установка связей между таблицами.
- •Основные понятия
- •Задания
- •Задания
- •Основные понятия
- •Задания
- •Лабораторная работа № 5 Создание запросов. Создание и конструирование форм.
- •Основные понятия
- •З а д а н и я
- •Работа с графическими приложениями.
- •Рабочая среда и интерфейс пользователя
- •Построение сложных объектов. Дополнительные приемы работы с объектами
- •In Front Of (Перед объектом)
- •In Back Of (За объектом)
- •Intersect (Пересечение)
- •1. Выполнить построение изображения "Дракончик"
- •Надпись
- •Заполнение списка
- •Поле со списком
- •Полоса прокрутки и счетчик
- •Переключатель
- •Флажок и выключатель
- •Ссылки на ячейки и диапазоны
- •Набор страниц
- •Набор вкладок
- •Задания
- •Задания Упражнение 1. Создание процедуры выхода из формы.
- •Основы визуального программирования Лабораторная работа № 8 Объектно-ориентированное программирование.
- •Основные понятия
- •Задания
- •Работа с интернет- технологиями. Лабораторная работа № 9 Поиск информации. Создание электронного почтового ящика.
- •Основные понятия
- •1 2 3 4 5 6 7 8 9 След
- •Электронная почта. Основные понятия
- •Создание персональной Web-страницы Основные понятия
- •Стандартные клавиатурные команды Windows
- •Исполнительные команды в окнах
Задания Упражнение 1. Создание процедуры выхода из формы.
Откройте сохраненный проект Лабораторная работа №2.
Задайте кнопке «Выход»команду закрыть. Для этого необходимо перейти к окну кода следующим образом: дважды щелкнув по кнопке«Выход», при этом откроется окно кода.
Внутрь процедуры впишите слово End.
Private Sub CommandButton1_Click()
End
End Sub
Слева в первой строке указывается имя объекта, с которым мы работаем, слева – действие, применяемое к данному объекту. В нижней области окна набрана программа, выполняющая заданную команду. В данном случае – команда End(закрыть).
4. Запустите проект и проверьте его на выполнение. Для этого необходимо выполнить одно из следующих действий:
на панели инструментов нажать на кнопку (запуск проекта);
используя строку меню, выполнить команду: Запуск/Запуск макроса (Run/Run macro);
использую функциональную клавишу F5.
Упражнение 2. Создание процедуры, выполняющей следующее: данные, введенные в текстовое поле должны отобразиться в надписи. Событие присвойте кнопке «Замена».
1. На имеющейся форме создайте командную кнопку «Замена».
2. Для открытия окна кода дважды щелкните по кнопке.
3. Запишите процедуру:
Private Sub CommandButton2_Click()
Label1.Caption = TextBox1.Text ' присвоение заголовку Надписи (Label) текста, введенного в Текстовое поле(TextBox)
TextBox1.Text = " " 'очистить текстовое поле
End Sub
Контрольные вопросы:
Что такое процедура? Как записывается процедура?
Что такое функция?
В чем отличие процедуры от функции?
Основные типы переменной.
Что такое константа?
Как изменить цвет объекта?
Как отформатировать надпись?
Как запустить VBA?
Назовите элементы окна VBA?
Перечислите элементы управления.
Как заполнить список?
Как создать на экранной форме объект элемента управления?
Основы визуального программирования Лабораторная работа № 8 Объектно-ориентированное программирование.
Цель: ознакомить с разработкой пользовательских приложений.
Основные понятия
Большинство приложений, созданных в VBA в Excel, работают в интерактивном режиме. На экран выводится информация, предназначенная для пользователя программы, и ожидается его ответная реакция в виде ввода данных или команд. Интерактивное приложение в VBA создается на базе формы, являющейся, как правило, основным окном интерфейса, с элементами управления, позволяющими осуществлять взаимодействие с пользователями.
В VBA при создании форм разработчик использует конструктор форм. Конструктор форм предназначен для самостоятельной разработки формы с заданными свойствами.
Задания
Упражнение 1. . Создание простой формы для вывода справочной информации.
Запустите редактор VBA.
2. Разработайте пользовательскую форму для определения видов контроля по дисциплинам «Информатика», «Математика» и «Экономтеория», как показано на рисунке 41.
Рисунок 41. Законченный вид формы
3. Для того чтобы написать процедуру обработки события нажатия кнопки «Информатика», дважды щелкните по ней. Активизируется модуль UserForm1, в котором введите процедуру: Private Sub CommandButton1_Click()
TextBox1.Text="Экзамен. Компьютерное тестирование"
End Sub
4. Для обработки событий нажатий кнопок «Математика» и «Экономтеория» в модуле UserForm1 введите следующие две процедуры:
Private Sub CommandButton2_Click()
TextBox1.Text="Экзамен. Собеседование"
End Sub
Private Sub CommandButton3_Click()
TextBox1.Text="Зачет. Тестирование"
End Sub
5. Запустите проект и проверьте его на выполнение. При нажатии кнопки с выбранной дисциплиной в текстовом поле отобразится сведения о форме контроля.
Упражнение 2. Создание простой формы для нахождения процента от введенного числа.
1. В редакторе VBA разработать пользовательскую форму, показанную на рисунке 42.
Рисунок 42. Пользовательская форма на вычисление процентов
2. Для кнопки «Рассчитать» запишите следующий программный код:
Private Sub CommandButton1_Click()
Dim Result As Double
Result = 0.01 * TextBox2 * TextBox1
TextBox3.Text = Result
End Sub
3. Для кнопки «Очистить» запишите следующий программный код
Private Sub CommandButton2_Click()
TextBox1 = " "
TextBox2 = " "
TextBox3 = " "
End Sub
4. Запустите проект и проверьте его на выполнение.
Упражнение 3. Создание сложной формы для вычисления выбранного арифметического действия к выделенным числам.
1. В редакторе VBA разработать пользовательскую форму, показанную на рисунке 43, где для изображения:
чисел используется элемент Список (ListBox);
Вычислить, Отмена – элемент Кнопка (CommandButton);
Операция – элемент Рамка (Frame);
Сумма, Произведение, Среднее - элемент Переключатель (OptionButton);
Результат - элемент Надпись (Label );
для отображения вычисляемого значения – элемент TextBox (Текстовое поле).
2. На кнопку «Вычислить» введите следующую программу:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim n As Integer
Dim Сумма As Double
Dim Произведение As Double
Dim Среднее As Double
Dim Результат As Double
If OptionButton1.Value = True Then
Сумма = 0
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Сумма = Сумма + .List(i)
End If
Next i
End With
Результат = Сумма
End If
If OptionButton2.Value = True Then
Произведение = 1
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Произведение = Произведение * .List(i)
End If
Next i
End With
Результат = Произведение
End If
If OptionButton3.Value = True Then
Среднее = 0
n = 0
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
n = n + 1
Среднее = Среднее + .List(i)
End If
Next i
End With
Результат = Среднее / n
End If
TextBox1.Text = CStr(Format(Результат, "Fixed"))
End Sub
3. Для кнопки «Отмена» напишите следующую процедуру:
Private Sub CommandButton2_Click()
UserForm1.Hide
End Sub
4. Для инициализации формы введите следующую процедуру:
Private Sub UserForm_Initialize()
With ListBox1
.List = Array(1, 2, 3, 4, 5, 6, 7, 8, 10)
.ListIndex = 0
.MultiSelect = fmMultiSelectMulti
End With
TextBox1.Enabled = False
End Sub
5. Запустите проект на выполнение. При этом в группе Операция следует установить один из переключателей: Сумма, Произведение или Среднее, чтобы указать, какая операция будет выполняться над выбранными числами. Нажатие кнопки «Вычислить» должно привести к выполнению операции и выводу результата в поле Результат.
Упражнение 4. Разработка приложения, которое будет содержать пользовательскую форму для ввода названия организации и выбора её типа и вывода данных на рабочий лист, показанную на рисунке 44.
Рисунок 44. Пользовательская форма
1. Откройте рабочую книгу и нажмите комбинацию клавиш <Alt+F11> для запуска VBA;
2. Выберите вкладку Insert – UserForm, чтобы запустить пустое диалоговое окно;
3. Свойства Caption объекта UserForm будет иметь значение по умолчанию – UserForm1. Воспользуйтесь окном Свойств (Properties) для того, чтобы изменить значение свойства Caption на “Вывод названия организации” (если окно Свойств (Properties) не отображается на экране, нажмите клавишу <F4>);
4. Создайте форму пользователя и разместите на ней элементы управления, как показано на рис. 6.4;
Дважды щелкните по кнопке «Отмена» и введите следующую процедуру:
Private Sub CommandButton1_Click()‘начало процедуры
Unload UserForm1 ‘закрытие формы
End Sub ‘конец процедуры
5. Данная процедура выполняется после щелчка пользователем по кнопке «Отмена». Она вызывает выгрузку формы UserForm из памяти;
6. Нажмите комбинацию клавиш <Shift+F7>, чтобы повторно отобразить объект UserForm1;
7. Дважды щелкните по кнопке «Ok» и введите следующую процедуру:
Private Sub CommandButton1_Click() ‘начало процедуры
Sheets("Лист1").Activate ‘активизация рабочего листа
(связь с рабочим листом)
NextRow = _
Application.WorksheetFunction.CountA(Range("A:A")) + 1 ‘определение пустой строки в рабочем листе, здесь Count (функция СЧЕТ), Range("A:A")) + 1 - выделяет диапазон ячеек, начиная с ячейки А1 с шагом +1
Cells(NextRow, 1) = TextBox1.Text ‘передача имени
If OptionButton1 Then Cells(NextRow, 2) = "Фирма"
If OptionButton2 Then Cells(NextRow, 2) = "Корпорация"
If OptionButton3 Then Cells(NextRow, 2) = "Частное предприятие"
‘проверка условия
TextBox1.Text = "" 'Очистка элементов управления для следующих записей
OptionUnknown = True
TextBox1.SetFocus
If TextBox1.Text = "" Then
MsgBox "Введите название организации."
TextBox1.SetFocus
Exit Sub
End If 'Проверка введения имени
End Sub
8. Перейдите на рабочий лист MS Excel и поместите элемент управления Кнопка панели элементов Visual Basic , после чего появиться диалоговое окно «Назначить макрос объекту», выберите вкладку «Создать». В окне модуля введите код:
Sub Кнопка1_Щелкнуть()‘начало процедуры
UserForm1.Show‘открытие формы
End Sub ‘конец процедуры
Поместите на ней надпись «Нажать» (рис. 45). С помощью этой кнопки будет вызываться разрабатываемое диалоговое окно, показанное на рисунке 44.
Рисунок 45. Законченный вид рабочего листа
9. Запустите проект и поверьте его на выполнение.
Упражнение 5. Разработка сложного приложения, которое создает базу данных для регистрации вкладов.
1. В редакторе VBA разработать пользовательскую форму, показанную на рисунке 46.
Рисунок 46. Форма диалогового окна для программы регистрации вкладов
2. Элементам управления присвойте имена и свойства в соответствии таблицей 6.1.
Таблица 6.1
Элемент |
Имя |
Свойства |
События |
Форма |
UserForm |
|
1.Initialize 2.Устанавливает количество элементов в списке. 3.Присваивает значения элементам списка. |
Форма |
Вклад |
Caption Прием вклада |
4.Изменяет текст в строке заголовка приложения. 5.Закрывает сроку формул. 6.Устанавливает всплывающие подсказки. 7.Формирует заголовки столбцов таблицы, обращаясь к специально созданной процедуре. |
Кнопка |
Принять |
Caption Принять |
Click Вычисляет номер первой свободной строки. 1.Поверяет, введены ли данные в поля формы. 2.Записывает данные из элементов управления Формы в ячейки рабочего листа |
Кнопка |
Отмена |
Caption Отмена |
Click 1.Вычисляет номер последней строки таблицы. 2. Удаляет содержимое из ячеек этой строки. |
Кнопка |
Выход |
Caption Выход |
Click Завершает выполнение программы |
Поле |
Фамилия |
|
|
Поле |
Сумма вклада |
|
|
Поле со списком |
Тип Вклада |
|
|
Переключатели |
Северное Центральное Восточное |
|
|
Поле |
Примечание |
|
|
3. Рабочему листу Excel c именем «Лист1» присвойте имя «Меню», а рабочему листу «Лист2» - «База».
4. На рабочем листе с именем «Меню» поместите элемент управления Кнопка панели элементов Visual Basic и поместите на ней надпись «Прием вклада». С помощью этой кнопки будет вызываться разрабатываемое диалоговое окно.
5. Для кнопки «Прием вклада» запишите код:
Private Sub CommandButton1_Click()
'Вызываем процедуру формирования заголовков БД
ЗаголовокРабочегоЛиста
End Sub
6. Для формирования заголовков столбцов базы данных создайте процедуру Sub пользователя, которая будет вызываться из процедуры обработки кнопки рабочего листа Прием вклада. Для этого выполните команду меню Visual Basic Вставка, Процедура и присвойте ей имя ЗагловокРабочегоЛиста. Процедура выполняет следующие действия:
проверяет, заполнена ли первая строка – строка заголовков столбцов (по назначению ячейки А1), если заполнена, то не выполняет никаких действий, завершает работу и передает управление в точку вызова;
если первая строка не заполнена, то в ячейки первой строки рабочего листа записывает названия граф таблицы базы данных, комментарии к ним, закрепляет первую строку и завершает работу, передавая управление в точку своего вызова.
В окне редактирования кода введите текст программы этой процедуры:
Private Sub ЗаголовокРабочегоЛиста()
'Активизируем рабочий лист
Application.Worksheets("База").Activate
'Проверяем, есть ли названия столбцов БД
With ActiveSheet
If .Range("A1").Value = "Фамилия" Then
.Range("A2").Select
Else
ActiveSheet.Cells.Clear
'Записываем названия столбцов
Range("A1:E1").Value = Array("Фамилия", "Тип", "Сумма", "Отделение", "Примечание")
'Фиксируем первую строку
.Range("2:2").Select
ActiveWindow.FreezePanes = True
.Range("A2").Select
'Вставляем комментарии
.Range("A1").AddComment
.Range("A1").Comment.Visible = False
.Range("A1").Comment.Text Text:="Фамилия клиента"
.Range("B1").AddComment
.Range("B1").Comment.Visible = False
.Range("B1").Comment.Text Text:="Тип вклада"
.Range("C1").AddComment
.Range("C1").Comment.Visible = False
.Range("C1").Comment.Text Text:="Сумма вклада"
.Range("D1").AddComment
.Range("D1").Comment.Visible = False
.Range("D1").Comment.Text Text:="Отделение банка"
End If
End With
'Вызываем элемент Форма с именем Вклад
Вклад.Show
End Sub
В процедуру обработки события Initialize формы введите код:
Private Sub UserForm_Initialize()
With Вклад
.Северное.Value = True
'Установим длину элемента Список
.ТипВклада.ListRows = 3
'Присвоим значения элементами списка
.ТипВклада.List = Array("Срочный", "Депозит", "Текущий")
'Установим фокус элементу Кнопка с именем Принять
.Принять.SetFocus
End With
End Sub
В процедуру обработки события Initialize элемента Форма с именем «Вклад» запишите код:
Private Sub Вклад_Initialize()
'Изменим название в строке заголовка приложения
Application.Caption = "Регистрация. База данных Банк"
'Изменим название в строке заголовка
Application.DisplayFormulaBar = False
With Принять
.Default = True
'Установка всплывающей подсказки
.ControlTipText = "Ввод данных в базу данных"
End With
With Отмена
.Cancel = True
.ControlTipText = "Кнопка отмены"
End With
ЗаголовокРабочегоЛиста
End Sub
В процедуру обработки события Click элемента Кнопка с именем «Принять» введите код:
Private Sub Принять_Click()
“Декларадция переменных
Dim Фамилия As String
Dim ТипВклада As String
Dim СуммаВклада As Double
Dim Отделение As String
Dim Примечание As String
Dim НомерСтроки As Integer
'Вычисление номера первой свободной строки
НомерСтроки=_
Application.CountA (ActiveSheet.Columns(1)) + 1
With Вклад
If .Фамилия.Text = "" Then
MsgBox "Вы забыли указать фамилию", vbExclamation
Exit Sub
End If
If .ТипВклада.Value = "" Then
MsgBox "Вы забыли указать тип вклада", vbExclamation
Exit Sub
End If
TextBox1 = .Фамилия.Text
ТипВклада = .ТипВклада.Value
If .Северное.Value = True Then Отделение = "Северное"
If .Центральное.Value = True Then Отделение = "Центральное"
If .Восточное.Value = True Then Отделение = "Восточное"
If IsNumeric(.СуммаВклада.Text) = False Then
MsgBox "Введена неверная сумма", vbExclamation
Exit Sub
End If
СуммаВклада = CDbl(.СуммаВклада.Text)
Примечание = .Примечание.Text
End With
'Записываем данные в ячейки рабочего листа
With ActiveSheet
.Cells(НомерСтроки, 1).Value = Фамилия
.Cells(НомерСтроки, 2).Value = ТипВклада
.Cells(НомерСтроки, 3).Value = СуммаВклада
.Cells(НомерСтроки, 4).Value = Отделение
.Cells(НомерСтроки, 5).Value = Примечание
End With
End Sub
В процедуру обработки события Click элемента Кнопка с именем «Отмена» поместите код:
Private Sub Отмена_Click()
Dim НомерСтроки As Integer
"Вычисляем номер последней строки
НомерСтроки = Application.CountA(ActiveSheet.Columns(1))
'Удаляем содержимое ячеек строки
With ActiveSheet
.Cells(НомерСтроки, 1).Value = ""
.Cells(НомерСтроки, 2).Value = ""
.Cells(НомерСтроки, 3).Value = ""
.Cells(НомерСтроки, 4).Value = ""
.Cells(НомерСтроки, 5).Value = ""
End With
End Sub
В процедуру обработки события Click элемента Кнопка с именем «Выход» поместите код:
Private Sub Выход_Click()
'Активизируем рабочий лист с именем Меню
Sheets("Меню").Activate
'Завершаем выполнение программы
End
End Sub
Перейдите в приложениеMS Excel, активизируйте рабочий лист Меню, изображенный на рисунке 47 и щелкните на кнопке «Прием вклада». Программа должна активизироваться, и на экране появиться созданное диалоговое окно (рисунок 46).
Рисунок 47. Законченный вид листа «Меню»
Отладьте и проверьте работу программы во всех режимах.
Сохраните проект.
Самостоятельная работа.
1. В примере п.2 выполните изменения в теле процедуры: выведите результат вычислений в ячейку С1.
2. На рабочем листе создайте кнопку для вывода формы на экран.
Контрольные вопросы.
1. Как присвоить текстовому полю (TextBox) какое –либо значение?
2. Какая панель инструментов используется для размещения элементов управления на рабочем листе?
3. Как вызвать панель инструментов Формы на рабочий лист MS Excel?
4. Что означают события: Click, Initialize и методы: Show, Unload, Hide?
5. Что означает свойство MultiSelect?