Разработка приложения средствами VBA
Разработка графического интерфейса проекта (панель инструментов имеет 6 кнопок). Процедуры разделов программы: документа ThisDocument, программного модуля Module1 и пользовательских форм UserForm1, UserForm2 и Деление_амёбы. Тестирование программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.12.2010 |
Размер файла | 29,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
11
Федеральное агентство по образованию и науки
Кузнецкий институт информационных и управленческих технологий
(филиал ПГУ)
Курсовая работа
По дисциплине: Вычислительная техника и программирование
Тема: Разработка приложения средствами 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. Вывести справку о разработчике программы.
Для работы с текстом необходимо создать модуль, где будет прописано:
· Открытие текстового документа;
· Выделение первого абзаца;
· Вырезание первого абзаца;
· Вставка вырезанного абзаца в конец документа;
· Форматирование вставленного абзаца;
· Добавление границы к вставленному абзацу;
· Вывод формы «Задание»;
· Вывод формы «Справка о разработчике».
Для вывода сведений о разработчике программы будет создана форма.
Курсовая работа будет организована с помощью самостоятельно разработанной панели инструментов, при помощи которой будет происходить вызов всех процедур программы и форм.
2. Разработка интерфейса программы
Курсовая работа реализована при помощи самостоятельно разработанной панели инструментов. В данном проекте панель инструментов имеет 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. Разработка процедур
3.1 Функциональное назначение процедур
Проект состоит из: 1) документа ThisDocument;
2) программного модуля Module1;
3) пользовательских форм UserForm1, UserForm2 и Деление_амёбы.
Программа открывающегося документа ThisDocument содержит процедуру Document_Open() - процедура, которая выполняется при открытии документа, и в которой прописан код для создания панели инструментов (Application.CommandBars.Add(Name:="Работа с текстом", Position:=msoBarTop, menubar:=False, temporary:=True)). Также в ThisDocument прописаны коды для создания кнопок панели инструментов «Работа с текстом».
Программный модуль Module1 содержит процедуры:
§ Кнопка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
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. Лабораторные работы по дисциплине «ВТ и программирование» (методические указания к лабораторным работам).
Подобные документы
Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Разработка программного модуля, программного обеспечения для компьютерных систем средствами C++ Builder. Разработка карты и интерфейса сайта. Алгоритмы реализации интерактивных функций программы. Пропускная способность линии связи. Программный код сайта.
отчет по практике [1,2 M], добавлен 16.09.2012Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.
курсовая работа [215,3 K], добавлен 01.09.2010Анализ проектирования интерфейса программы. Выбор и назначение визуальных компонентов. Изучение экранных форм приложения. Модули, процедуры, функции проекта и их назначение. Листинг программного кода. Результаты работы автоматизированного продукта.
курсовая работа [1,9 M], добавлен 11.12.2017Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.
курсовая работа [527,1 K], добавлен 27.09.2014Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Анализ технического задания. Разработка интерфейса программы и ее алгоритмов. Кодирование и тестирование разработанного программного обеспечения, оценка его практической эффективности и функциональности. Формирование, содержание руководства пользователя.
курсовая работа [2,0 M], добавлен 31.07.2012Характеристика форматов файлов wav и mp3. Построение диаграмм прецедентов, разработка графического интерфейса и архитектуры приложения. Разработка алгоритмов работы программы: метод TrimWavFile, TrimMp3, ChangeVolume, speedUpX1_2, speedDownX1_2.
курсовая работа [2,7 M], добавлен 20.12.2013Описание математической модели, таблицы истинности. Разработка программы, реализация защитного программирования. Отладка и тестирование программы, инструкция пользователя. Расчет затрат на разработку и коммерческой эффективности проекта от реализации.
дипломная работа [3,2 M], добавлен 18.06.2012Создание программного модуля, выполненного на языке программирования VBA (Visual Basic for Applications) и позволяющего во введенном массиве символов удалить все повторные вхождения этих символов. Разработка пользовательского интерфейса. Код программы.
курсовая работа [317,4 K], добавлен 11.10.2012