русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Упражнение 3. Создание сложной формы для вычисления выбранного арифметического действия к выделенным числам.


Дата добавления: 2015-07-04; просмотров: 974; Нарушение авторских прав


 
 

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

7. В процедуру обработки события Initialize формы введите код:

Private Sub UserForm_Initialize()

With Вклад

.Северное.Value = True

'Установим длину элемента Список

.ТипВклада.ListRows = 3

'Присвоим значения элементами списка

.ТипВклада.List = Array("Срочный", "Депозит", "Текущий")

'Установим фокус элементу Кнопка с именем Принять

.Принять.SetFocus

End With

End Sub

8. В процедуру обработки события Initialize элемента Форма с именем «Вклад» запишите код:

Private Sub Вклад_Initialize()

'Изменим название в строке заголовка приложения

Application.Caption = "Регистрация. База данных Банк"

'Изменим название в строке заголовка

Application.DisplayFormulaBar = False

With Принять

.Default = True

'Установка всплывающей подсказки

.ControlTipText = "Ввод данных в базу данных"

End With

With Отмена

.Cancel = True

.ControlTipText = "Кнопка отмены"

End With

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

End Sub

9. В процедуру обработки события 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

10. В процедуру обработки события 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

11. В процедуру обработки события Click элемента Кнопка с именем «Выход» поместите код:

Private Sub Выход_Click()

'Активизируем рабочий лист с именем Меню

Sheets("Меню").Activate

'Завершаем выполнение программы

End

End Sub

12.

 
 

Перейдите в приложение MS Excel, активизируйте рабочий лист Меню, изображенный на рисунке 47 и щелкните на кнопке «Прием вклада». Программа должна активизироваться, и на экране появиться созданное диалоговое окно (рисунок 46).

Рисунок 47. Законченный вид листа «Меню»

 

13. Отладьте и проверьте работу программы во всех режимах.

14. Сохраните проект.



<== предыдущая лекция | следующая лекция ==>
Упражнение 2. Создание простой формы для нахождения процента от введенного числа. | Основные понятия


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.963 сек.