РефератыИнформатика, программированиеРаРазработка приложения средствами VBA

Разработка приложения средствами VBA

Федеральное агентство по образованию и науки


Кузнецкий институт информационных и управленческих технологий


(филиал ПГУ)


Курсовая работа


По дисциплине: Вычислительная техника и программирование


Тема: Разработка приложения средствами VBA


Кузнецк 2008 г.


Содержание


Введение
1. Анализ задания
2. Разработка интерфейса программы
3. Разработка процедур
3.1 Функциональное назначение процедур
3.2 Описание процедур

4. Тестирование и отладка программы


Заключение


Список литературы


Введение
VisualBasicforApplication (VBA) - объектно-ориентированный язык программирования (ООП), который позволяет создавать приложения (проекты) с развитым визуальным интерфейсом. ООП можно описать как методику анализа, проектирования и написания приложений, манипулируя объектами.

Язык был разработан в середине 1960-х годов профессорами Дартмутского колледжа Джоном Кемени и Томасом Курцом. Бейсик сравнительно несложен для изучения и подходит для разработки коротких и простых программ. В 1970-х годах он завоевал всеобщее признание вследствие своей компактности и пригодности для первых персональных компьютеров с их ограниченным объемом памяти.


Приложение (проект) может включать модули, формы и связанные с приложением объекты, относящиеся к некоторому документу. Причем проект сохраняется вместе с самим документом. Модуль VBA содержит исходный код макроса, или программы, создаваемой пользователем.


Каждый документ Word (или шаблон документа) может содержать один или несколько модулей, одну или несколько пользовательских форм, а может и не содержать никаких модулей и форм.


В VBA создание, редактирование, отладка и запуск на выполнение программ и макросов осуществляется средствами интегрированной среды разработки (средствами редактора VB). Чтобы перейти в интегрированную среду разработки из любого приложения MSOffice, достаточно нажать комбинацию клавиш Alt+F11или выполнить команду


Сервис/Макрос/Редактор Visual Basic (Tools/ Macros /Visual Basic Editor).



1. Анализ задания


Создаем проект, состоящий из нескольких частей:


- Документа ThisDocument
.
В нём будет прописан код для создания панели инструментов;


- программного модуля Module
1,
содержащего код процедур;


- пользовательской формы UserForm
1,
содержащей сообщение о разработчике проекта;


- пользовательской формы UserForm
2,
содержащей задание, выполняемое программой в UserForm
3
;


- пользовательской формы UserForm
3,
позволяющей решить задачу.


По заданию необходимо разработать приложение для создания следующих функций:


1.
Автоматизировать работу с текстом:


2.
Составить алгоритм решения задачи: сколько амёб будет через 3, 6, 9, 12,… 24 часа, если каждые 3 часа амёба делится на 2 клетки.


3.
Вывести справку о разработчике программы.


Для работы с текстом необходимо создать модуль, где будет прописано:


· Открытие текстового документа;


· Выделение первого абзаца;


· Вырезание первого абзаца;


· Вставка вырезанного абзаца в конец документа;


· Форматирование вставленного абзаца;


· Добавление границы к вставленному абзацу;


· Вывод формы «Задание»;


· Вывод формы «Справка о разработчике».


Для вывода сведений о разработчике программы будет создана форма.


Курсовая работа будет организована с помощью самостоятельно разработанной панели инструментов, при помощи которой будет происходить вызов всех процедур программы и форм.


2. Разработка интерфейса программы

Курсовая работа реализована при помощи самостоятельно разработанной панели инструментов. В данном проекте панель инструментов имеет 6 кнопок (см. Приложение А, рисунок 1
).


Кнопка «Открыть» – служит для открытия документа с текстом по заданному пути.


Кнопка со списком «Перемещение»:


- Кнопка «Выделить» – при её нажатии выделяется первый абзац документа.


- Кнопка «Вырезать» – вырезает выделенный абзац в Буфер обмена.


- Кнопка «Вставить» – вставляет абзац из Буфера обмена в конец документа с текстом.


Кнопка «Форматирование» – при нажатии этой кнопки к абзацу применяется прописанное в модуле форматирование.


Кнопка «Граница» – добавляет верхнюю, нижнюю, правую и левую границы к абзацу.


Кнопка «Задание» - вызывает форму для реализации решения задачи.


Кнопка с рисунком – при её нажатии выводится сообщение о разработчике.


Базисом для создания графического интерфейса разрабатываемого проекта является форма. Новая форма добавляется в проект командой Insert – UserForm. На форме размещаются необходимые элементы управления. Основные элементы управления, доступные разработчику, размещены на панели инструментов «ToolBox», которая появляется, если нажата кнопка на панели инструментов редактора. Управляющие элементы имеют различное назначение:


- Label – надпись, используется для вывода данных


- TextBox – текстовое поле ввода


- ComboBox – поле со списком


- ListBox– окно списка


- CheckBox - флажок


- OptionsButton – переключатель


- Frame – рамка


- CommandButton –кнопка


- Image – рисунок и т.д.


Интерфейс данного проекта включает в себя форму для вывода справки о разработчике проекта форму для вывода текста задания. Первая форма имеет имя «Справка о разработчике», вторая – «Задача». Форма «Справка о разработчике» содержит четыре поля Label (см. Приложение В, рисунок 2
). Форма «Задача» имеет одно поле Label (см. Приложение В, рисунок 3
). Для каждого элемента изменили свойство Caption(Заголовок) – Справка о разработчике и Picture (Картинка) – выбрали из коллекции картинок, хранящейся на жёстком диске. В окне свойств Font для элементов изменили шрифт (Font) – на CourierNew, размер – на 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.
Разработка процедур
3.1 Функциональное назначение процедур

Проект состоит из: 1) документа ThisDocument
;


2) программного модуля Module
1
;


3) пользовательских форм UserForm
1
,UserForm
2
и Деление_амёбы.


Программа открывающегося документа ThisDocument
содержит процедуру Document_Open() – процедура, которая выполняется при открытии документа, и в которой прописан код для создания панели инструментов (Application.CommandBars.Add(Name:="Работа с текстом", Position:=msoBarTop, menubar:=False, temporary:=True)). Также в ThisDocument
прописаны коды для создания кнопок панели инструментов «Работа с текстом».


Программный модуль Module
1
содержит процедуры:


- Кнопка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
).


3.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


WithActiveDocument.Paragraphs(4).Borders(wdBorderBottom) ‘нижняя’ .LineStyle = wdLineStyleDouble ‘двойная линия’ .LineWidth = wdLineWidth025pt ‘толщина линии’ EndWith


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. Лабораторные работы по дисциплине «ВТ и программирование» (методические указания к лабораторным работам).

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Разработка приложения средствами VBA

Слов:1960
Символов:18189
Размер:35.53 Кб.