Вексельное обращение и учет
Федеральное
агентство по образованию и науки
Кузнецкий
институт информационных и управленческих технологий
(филиал ПГУ)
Курсовая
работа
По дисциплине: Вычислительная техника и
программирование
Тема:
Разработка приложения средствами VBA
Кузнецк 2008 г.
Содержание
Введение
1. Анализ задания
2. Разработка интерфейса программы
3. Разработка процедур
3.1 Функциональное назначение процедур
3.2 Описание процедур
4. Тестирование и отладка программы
Заключение
Список литературы
Введение
Visual Basic for
Application (VBA) - объектно-ориентированный язык программирования
(ООП), который позволяет создавать приложения (проекты) с развитым визуальным
интерфейсом. ООП можно описать как методику анализа, проектирования и написания
приложений, манипулируя объектами.
Язык
был разработан в середине 1960-х годов профессорами Дартмутского колледжа
Джоном Кемени и Томасом Курцом. Бейсик сравнительно несложен для изучения и
подходит для разработки коротких и простых программ. В 1970-х годах он завоевал
всеобщее признание вследствие своей компактности и пригодности для первых
персональных компьютеров с их ограниченным объемом памяти.
Приложение
(проект) может включать модули, формы и связанные с приложением объекты,
относящиеся к некоторому документу. Причем проект сохраняется вместе с самим
документом. Модуль VBA содержит
исходный код макроса, или программы, создаваемой пользователем.
Каждый
документ Word (или шаблон документа) может
содержать один или несколько модулей, одну или несколько пользовательских форм,
а может и не содержать никаких модулей и форм.
В VBA создание, редактирование, отладка и
запуск на выполнение программ и макросов осуществляется средствами
интегрированной среды разработки (средствами редактора VB). Чтобы перейти в интегрированную среду разработки из любого
приложения MS Office, достаточно нажать комбинацию клавиш Alt+F11 или выполнить команду
Сервис/Макрос/Редактор Visual Basic (Tools/ Macros /Visual Basic Editor).
1. Анализ задания
Создаем проект, состоящий
из нескольких частей:
ü Документа ThisDocument. В нём будет прописан код для создания панели инструментов;
ü программного модуля Module1, содержащего код процедур;
ü пользовательской формы UserForm1, содержащей сообщение о разработчике проекта;
ü пользовательской формы UserForm2, содержащей задание, выполняемое программой в UserForm3;
ü пользовательской формы UserForm3, позволяющей решить задачу.
По заданию необходимо разработать приложение для создания
следующих функций:
1. Автоматизировать работу с текстом:
2. Составить алгоритм решения задачи: сколько
амёб будет через 3, 6, 9, 12,… 24 часа, если каждые 3 часа амёба делится на 2
клетки.
3. Вывести справку о разработчике
программы.
Для работы с текстом
необходимо создать модуль, где будет прописано:
· Открытие текстового документа;
· Выделение первого абзаца;
· Вырезание первого абзаца;
· Вставка вырезанного абзаца в конец
документа;
· Форматирование вставленного абзаца;
· Добавление границы к вставленному
абзацу;
· Вывод формы «Задание»;
· Вывод формы «Справка о разработчике».
Для вывода сведений о разработчике программы будет создана
форма.
Курсовая работа будет организована с помощью самостоятельно разработанной
панели инструментов, при помощи которой будет происходить вызов всех процедур программы
и форм.
Курсовая работа
реализована при помощи самостоятельно разработанной панели инструментов. В
данном проекте панель инструментов имеет 6 кнопок (см. Приложение А, рисунок
1).
Кнопка «Открыть» – служит
для открытия документа с текстом по заданному пути.
Кнопка со списком
«Перемещение»:
- Кнопка «Выделить» – при
её нажатии выделяется первый абзац документа.
- Кнопка «Вырезать» –
вырезает выделенный абзац в Буфер обмена.
- Кнопка «Вставить» – вставляет
абзац из Буфера обмена в конец документа с текстом.
Кнопка «Форматирование» –
при нажатии этой кнопки к абзацу применяется прописанное в модуле
форматирование.
Кнопка «Граница» –
добавляет верхнюю, нижнюю, правую и левую границы к абзацу.
Кнопка «Задание» -
вызывает форму для реализации решения задачи.
Кнопка с рисунком – при её
нажатии выводится сообщение о разработчике.
Базисом для создания
графического интерфейса разрабатываемого проекта является форма. Новая форма
добавляется в проект командой Insert
– UserForm. На форме размещаются необходимые
элементы управления. Основные элементы управления, доступные разработчику,
размещены на панели инструментов «ToolBox», которая появляется, если нажата кнопка на панели инструментов редактора. Управляющие
элементы имеют различное назначение:
§ Label – надпись, используется для вывода
данных
§ TextBox – текстовое поле ввода
§ ComboBox – поле со списком
§ ListBox – окно списка
§ CheckBox - флажок
§ OptionsButton – переключатель
§ Frame – рамка
§ CommandButton –кнопка
§ Image – рисунок и т.д.
Интерфейс данного проекта
включает в себя форму для вывода справки о разработчике проекта форму для
вывода текста задания. Первая форма имеет имя «Справка о разработчике», вторая
– «Задача». Форма «Справка о разработчике» содержит четыре поля Label (см. Приложение В, рисунок 2).
Форма «Задача» имеет одно поле Label
(см. Приложение В, рисунок 3). Для каждого элемента изменили свойство Caption (Заголовок) – Справка о разработчике и
Picture (Картинка) – выбрали из коллекции
картинок, хранящейся на жёстком диске. В окне свойств Font для элементов изменили шрифт (Font) – на Courier New, размер – на 12 или 15 и тип шрифта – полужирный.
Для выполнения второго
задания работы добавляем в проект третью пользовательскую форму. Поместили на
форму:
o надпись, у которой изменили свойства:
Caption – Label1 на «Введите начальное количество амёб», BackColor, Font – на Courier
12пт.;
o три текстовых поля TextBox; у них изменили свойство BackColor на оранжевый, Font на Tahoma;
o кнопку CommandButton, при этом в окне свойств изменили:
свойство Caption: CommandButton1 на «Результат», цвет (BackColor) на тёмно-оранжевый, свойство Font на Courier, полужирный, размер - 10пт.).
o кнопку CommandButton, при этом в окне свойств изменили:
свойство Caption: CommandButton2 на «Справка о разработчике», цвет (BackColor) на тёмно-оранжевый, свойство Font на Courier, полужирный, размер - 10пт.).
o кнопку CommandButton, при этом в окне свойств изменили:
свойство Caption: CommandButton1 на «Задача», цвет (BackColor) на тёмно-оранжевый, свойство Font на Courier, полужирный, размер - 10пт.).
В окне свойства Picture поменяли фон всей формы на рисунок (см.
Приложение В, рисунок 1).
3. Разработка процедур
Проект состоит из: 1)
документа ThisDocument;
2) программного модуля Module1;
3) пользовательских форм UserForm1, UserForm2 и
Деление_амёбы.
Программа открывающегося
документа ThisDocument содержит процедуру Document_Open() –
процедура, которая выполняется при открытии документа, и в которой прописан код
для создания панели инструментов
(Application.CommandBars.Add(Name:="Работа с текстом",
Position:=msoBarTop, menubar:=False, temporary:=True)). Также в ThisDocument прописаны коды для создания кнопок
панели инструментов «Работа с текстом».
§
Кнопка1() – открытие
документа по имени файла (Set WorkDoc = Documents.Open(FileName:="A:\Моя курсовая работа\ Землетрясения.
doc")
Кнопка со списком,
включающая в себя: - Кнопку2() – выделение первого абзаца после заголовка
(ActiveDocument.Paragraphs(2).Range.Select) - Кнопку3() – вырезание первого
абзаца (ActiveDocument. Paragraphs (2).Range.Cut) - Кнопку4() – вставка
вырезанного абзаца (ActiveDocument. Paragraphs(4).Range.Paste)
§ Кнопка5() – форматирование
вставленного абзаца (Selection.Font)
§ Кнопка6() – добавление границы к
последнему абзацу (ActiveDocument.Paragraphs(4).Borders(wdBorderBottom))
§ Кнопка7() – процедура вывода формы
«Деление амёбы» для выполнения задания (Деление_амёбы.Show)
§ Кнопка8() – процедура вызова формы «Справка
о разработчике» (см. Приложение С, Листинг 2).
ThisDocument ( Листинг программы см. Приложение
С, Листинг 1):
Для создания новой панели
инструментов скрыли следующие панели инструментов: Стандартная (Standard), Форматирование (Formatting) и Рисование (Drawing) с помощью свойства Visible (=False).
Добавили новую панель при
помощи функции Add, устанавливая
при этом некоторые свойства: Name:
= «Работа с текстом», Position:=msoBarTop, menubar:=False,
temporary:=True). Visible
= True.
Добавили Кнопку1 с
помощью функции Add, установили её
тип (Type:=msoControlButton, ID:=1) и прописали свойства (.Caption ‘заголовок’
= "Открыть"; .Style ‘стиль’= msoButtonCaption; .TooltipText ‘текст
подсказки’= "Открытие текстового документа"; .OnAction =
"Кнопка1").
Добавили кнопку с
раскрывающимся списком с помощью функции Add, установили её тип (Type:=msoControlPopup), свойство Caption
= “Перемещение” и функцию Controls. В список добавили: - Кнопку2 с помощью функции Add, установили её тип
(Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Выделить"; .Style = msoButtonCaption; .OnAction =
"Кнопка2"). - Кнопку3 с помощью функции Add, установили её тип
(Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Вырезать"; .Style = msoButtonCaption; .OnAction =
"Кнопка3"). - Кнопку4 с помощью функции Add, установили её тип
(Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Вставить"; .Style = msoButtonCaption; .OnAction =
"Кнопка4").
Добавили Кнопку5 с
помощью функции Add, установили её
тип (Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Форматирование"; .Style = msoButtonCaption; .TooltipText =
"Форматирование последнего абзаца"; .OnAction = "Кнопка5").
Добавили Кнопку6 с
помощью функции Add, установили её
тип (Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Граница"; .Style = msoButtonCaption; .TooltipText = "Добавление
границы"; .OnAction = "Кнопка6").
Добавили Кнопку7 с
помощью функции Add, установили её
тип (Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Задание"; .Style = msoButtonCaption; .TooltipText = "Выполнение
задачи"; .OnAction = "Кнопка7").
Добавили Кнопку8 с
помощью функции Add, установили её
тип (Type:=msoControlButton, ID:=1) и прописали свойства (.Caption =
"Справка"; .Style = msoButtonCaption; .TooltipText =
"Справка"; .OnAction = "Кнопка8").
Модуль ( Листинг программы см. Приложение С,
рисунок 2):
Для Кнопки1 с помощью
оператора описания Dim обозначили тип переменной WorkDoc – Document и прописали
путь документа для открытия:
'Открытие документа по
имени файла
Dim WorkDoc As Document
Set WorkDoc =
Documents.Open(FileName:="A:\Моя
курсовая работа\Землетрясения.doc").
Для Кнопки2 описали
процедуру для выделения первого абзаца после заголовка:
ActiveDocument.Paragraphs(2).Range.Select
With
Selection.Font
.Name =
"Times New Roman"
.Size = 14
End With
Для Кнопки3 описали
процедуру для вырезания первого абзаца документа:
ActiveDocument.Paragraphs(2).Range.Cut
Для Кнопки4 описали процедуру
для вставки из Буфера обмена вырезанного фрагмента:
ActiveDocument.Paragraphs(4).Range.Paste
Кнопка5 содержит в себе
процедуру форматирования вставленного в конец документа абзаца:
ActiveDocument.Paragraphs(4).Range.Select
With
Selection.Font
.Name = "Courier
New"
.Italic =
wdBold ‘полужирный’
.Size = 16
.Color =
wdColorLightBlue ‘голубой’
End With
Для Кнопки6 описали
процедуру для добавления границы к вставленному абзацу:
ActiveDocument.Paragraphs(4).Range.Select
With ActiveDocument.Paragraphs(4).Borders(wdBorderBottom) ‘нижняя’ .LineStyle = wdLineStyleDouble ‘двойная линия’ .LineWidth = wdLineWidth025pt ‘толщина линии’ End With
With
ActiveDocument.Paragraphs(4).Borders(wdBorderLeft) ‘левая’ .LineStyle = wdLineStyleDouble .LineWidth
= wdLineWidth025pt
End With
With
ActiveDocument.Paragraphs(4).Borders(wdBorderRight) ‘правая’ .LineStyle = wdLineStyleDouble .LineWidth
= wdLineWidth025pt
End With
With
ActiveDocument.Paragraphs(4).Borders(wdBorderTop) ‘верхняя’ .LineStyle = wdLineStyleDouble .LineWidth
= wdLineWidth025pt
End With
Кнопка 7 – это кнопка
вызова формы «Задание»:
Деление_амёбы.Show.
Кнопка8 – это кнопка
вывода формы «Справка о разработчике»
UserForm1.Show.
Пользовательская
форма Деление_амёбы ( Листинг программы см. Приложение С, Листинг 3):
Задача проекта решается заданием
цикла с параметром (цикл со счётчиком), который служит для организации циклов с
заранее известным числом повторений.
С помощью оператора
описания Dim объявляем тип переменной Х –Integer, result – Double,
str и str1 – String.
В поле ввода TextBox1.Text вводится первоначальное количество амёб.
При нажатии кнопки «Результат»
появляются надписи Label2 «Время в
часах» и Label3 «Количество амёб», в поле ввода TextBox2 выводится заданная строка со
значениями времени, в поле ввода TextBox3
выводятся результаты вычислений.
Если в текстовое поле TextBox1 не введено значение количества
амёб, то в поле TextBox1
ставится нулевое значение, а в поле TextBox2 выводится сообщение «амебы не
введены», а в поле TextBox3 выводится «введите начальное кол-во амеб» (см.
Приложение B, Рисунок
6).
4. Тестирование и
отладка программы
При запуске программы
«Деление_амёбы» в активном документе отображается созданная для выполнения
задачи форма (см.
Приложение B, Рисунок 4).
В первое поле ввода вводится
значение первоначального количества амёб и при нажатии кнопки «Результат» во
втором поле ввода отображается заданная строка со значениями времени, а в
третьем поле отображаются результаты вычисления деления введённого количества
амёб по прошествии этих значений времени (см. Приложение B, Рисунок 5).
При нажатии кнопки
«Задача» открывается форма UserForm2 с текстом задания (см. Приложение B, Рисунок 3).
При нажатии кнопки
«Справка о разработчике» выводится форма со сведениями о разработчике проекта (см. Приложение B, Рисунок 2).
Заключение
В результате работы над
курсовым проектом были разработаны:
- новая панель управления
с именем «Работа с текстом»;
- модуль программы;
- пользовательская форма
для решения задачи;
- пользовательская форма
«Задача»;
- пользовательская форма
«Справка о разработчике».
Была автоматизирована
работа с текстом:
- перемещение первого
абзаца в конец документа;
- форматирование
перемещённого абзаца;
- добавление границы к
абзацу.
Составили алгоритм решения
задачи: одноклеточная амёба каждые 3 часа делится на 2 клетки. Определить,
сколько амёб будет через 3, 6, 9, 12, … 24 часа.
Вывели справку о
разработчике проекта.
Список литературы
1.
Горных Е. Н. –
Учебное пособие «Программирование на VBA» 2003.
2.
Кузьменко В.Г. –
«Программирование на VBA»
2003.
3.
Лабораторные
работы по дисциплине «ВТ и программирование» (методические указания к
лабораторным работам).