Федеральное агентство по образованию
Московский Государственный Университет
Дизайна и Технологии
Курсовой проект по информатике
на тему:
«Объектно-ориентированное программирование
на VBA в среде Excel»
Вариант №3
Выполнила:
студентка группы ЭЭ-073
Воробьева А.А.
Проверила:
Мокринская Е.В.
Москва 2008
Содержание:
Теоретическая часть……………………………………………………………3
Введение………………………………………………………………………....3
1.Переменные и константы……………………………………………………..4
2.Структура проекта VBA и автоматизация программирования…………….4
3.Объект Range……………………………………………………………….....5
4.Свойство Cells………………………………………………………………....6
5.Операторы организации циклов…………………………………………..….6
6.Процедуры и встроенные функции организации диалога………………….7
7.Визуальные элементы управления. Экранная форма пользователя……….8
Практическая часть…………………………………………………………...10
1. Задание………………………………………………………………………10
2. Вид формы UserForm1……………………………………………...............10
3. Вид формы UserForm2……………………………………………………...11
4. «Макрос1»…………………………………………………………………...11
5. Кнопка «Шапка таблицы»………………………………………………….15
6. Кнопка «Ввод исходных данных»…………………………………………16
7. Кнопка «Расчет»…………………………………………………………….16
8. Кнопка «Добавить» ………………………………………………………...16
9. Кнопка «Очистить»…………………………………………………………17
10.Кнопка «Итого»…………………………………………………………….17
11.Кнопка «Выход»……………………………………………………………18
Список использованной литературы………………………………………..19
Теоретическая часть.
Введение
Программирование в Excel, в основном, сводится к управлению объектами. Эта задача выполняется с помощью инструкций, введённых на языке, понятном Excel. Язык программирования VBA(VisualBasicforApplication) является составной частью всех последних версий приложений MSOffice (Word, Excelи т.д.) и предназначен для создания дополнительных решений не выходя из среды этого приложения. Первая версия VBA появилась как упрощенное подмножество более раннего языка MicrosoftVisualBasic(VB). Однако по мере развития VBи VBAфирма – разработчик этих языков Microsoft практически их объединила.
Но многие опытные программисты не воспринимают идею программирования на Basic всерьёз. Само название (Beginner’sAll-purposeSymbolicInstructionCode– универсальный символический язык инструкций для начинающих) предполагает, что это не профессиональный язык. Действительно, Basic был разработан профессорами Дартмутского университета Дж. Кенеми и Т. Куртцом в 1963 году и задумывался как наглядное средство преподавания методов программирования студентам колледжей. Basic довольно быстро приобрёл большую популярность, и сейчас поддерживается во многих типах компьютеров. Basic первого поколения применялся в 70-е годы в основном на мини- и микро-ЭВМ. Так в 1975 году Билл Гейтс и Пол Аллен, основатели и в тот момент единственные сотрудники новой компании MicroSoft, разработали Basic-интерпретатор для микроЭВМ Altair8800.
Развитие систем программирования на основе Basic второго поколения началось с появлением в начале 80-х годов персональных компьютеров. В конце 80-х насчитывалось около десятка Basic-систем различных фирм-разработчиков. С 1989 года этим языком стала заниматься только компания MicroSoft. Basic стал намного популярнее в 1991 году, когда компания MicroSoft выпустила VisualBasic третьего поколения для Windows. Этот продукт облегчил массовую разработку самостоятельных приложений для Windows. В 1995 году компания MicroSoft значительно расширила возможности пакета Office за счёт доступа к объектным моделям приложений. С этих пор язык VBA, поддерживающий спецификацию COM(СomponentObjectModel),позволяет пользователю легко и понятно манипулировать объектами приложений. Применительно к среде Excel такими объектами являются рабочие листы, диапазоны, ячейки и т.д.
В настоящее время VB и VBA являются самыми популярными в мире инструментами разработки приложений, с которыми работают несколько десятков миллионов программистов.
1. Переменные и константы
Хороший стиль программирования предполагает объявление имён переменных и констант в самом начале текста программы. Переменная – именованная область оперативной памяти, отведённая для временного хранения данных, значение которых можно менять в процессе выполнения программы. Способ объявления переменной предполагает задания её имени и ключевого слова типа по схеме: Static/Public/Private/DimИмя Переменной1(Имя Переменной2…) AsТип. Dim или одно из других перечисленных – ключевое слово объявления переменной и выделения области оперативной памяти для хранения её значений. As - ключевое слово, предшествующее объявлению типа переменной. Другой способ объявления переменной имеет следующий синтаксис: Static/Public/Private/DimИмя Переменной1Суффикс (Имя Переменной2…). В данном случае тип переменной определяется символом-суффиксом, который записывается в конце имени. Некоторые типы данных VBA:
Byte – короткое число, от 0 до 255;
Integer– целые числа, от -32768 до 32767;
Single – вещественные (дробные) числа обычной точности, от -3,402823Е38 до -1,401298Е-45 для отрицательных и от 1,401298Е-45 до 3,402823Е38 для положительных значений;
String – строка символов переменной длины, от 0 до приблизительно 2 млрд. символов.
При описании переменных из возможных ключевых слов Static/Public/Private или Dim применяется необходимое одно, которое определяет область определения и время жизни переменной. Область определения – устанавливает пространство программы, в котором переменная имеет значение и является доступной к использованию. Время жизни переменной – время, в течение которого переменная сохраняет присвоенное значение.
Константа - именованная область оперативной памяти, отведённая для хранения данных, сохраняющих постоянное значение в течение выполнения программ. Их значение нельзя изменять. Объявление константы производится по следующей схеме: (Public/Private) ConstИмя Константы AsТип = Значение.
2. Структура проекта VBA и автоматизация программирования
Отличительной особенностью VBA является то, что для разработки итогового документа он предоставляет возможность непосредственной работы с любыми объектами MSOffice. Программа в объектно-ориентированной среде представляет собой сложную иерархическую структуру, называемую проектом, который может включать в себя модули, формы и объекты приложения. Модуль – это именованная программная единица, состоящая из раздела объявлений модуля и процедур. В разделе описаний модуля объявляются переменные и константы. Различают 2 основных типа модулей – стандартные и модули объектов. Стандартные модули могут содержать программные коды доступных для всего проекта процедур и функций. В модулях класса содержится описание нового объекта. Новый объект создаётся при создании нового экземпляра класса. Модуль форм является модулем объекта и содержит процедуры обработки событий формы пользователя и размещённых на ней элементов управления. Листы рабочей книги Excel так же являются объектами, на которых могут размещаться визуальные элементы управления. Каждый рабочий лист связан с отдельным модулем рабочего листа, в которых записываются процедуры обработки событий листов и размещённых на них элементов управления. Для каждого рабочего листа автоматически создаётся свой модуль.
Приложение Excel предоставляет пользователю возможность автоматизировать программирование любой последовательности действий и при этом не требует от него знания программирования. Такая программа называется макрос. Макрос – процедура, записанная на языке VBA, в которой запрограммировано выполнение действий пользователя. Макрос создаётся с помощью предназначенной для этой цели специальной программы – «Макрорекодер» - средство автоматизации программирования действий пользователя. Макрос имеет структуру процедуры Sub...EndSub. Он записывается средствами приложения Excel и запускать его на выполнение лучше из Excel, не прибегая к помощи редактора VBE.
3.Объект Range
Объект Rangeиспользуется в программном коде VBA наиболее часто и он позволяет работать как с отдельными ячейками, так и диапазонами - строками, столбцами и двухмерными областями. Доступ и работу с ячейками объект осуществляет с помощью своих свойств и методов. Свойства этого объекта следующие: Name – возвращает имя диапазона; Value – возвращает значение ячейки или диапазона; RowHeight – возвращает высоту строки; ColumnWidth – возвращает ширину столбца; Font – возвращает объект Font (Шрифт); Formula– возвращает формулу в формате А1; FormulaR1C1 – возвращает формулу в формате R1C1. Методы можно разделить на 2 большие группы – методы, относящиеся к объекту, и методы, реализующие некоторые команды Excel. Упрощённый формат ссылки на ячейку имеет следующий синтаксис: Range(Cell), где Cell – адрес ячейки. В данном варианте используется стандартная адресация ячеек типа столбец-строка и адрес, который может представлять собой ячейку, строку, столбец или диапазон ячеек, записывается в кавычках в виде строки символов.
4. Свойство Cells
Свойство Cells, как правило, используется для доступа к отдельно взятой ячейке, однако позволяет задавать и диапазоны. Основная идея применения этого способа в том, что программным путём подготавливаются значения переменных, которые затем применяются в качестве координат ячеек. В свойстве Cells используется адресация ячеек типа строка-столбец, т.е. аналогично индексации элементов матрицы. В общем виде координаты ячейки в свойстве Cells можно записать так: Cells (i,j), где i – номер строки ячейки; j – номер столбца. Для формирования ссылки на диапазон ячеек возможно совместное использование свойств Cells и Range. Ссылки имеют следующий синтаксис: Range(Cells1, Cells2), где Cells1 – адрес левой верхней ячейки диапазона; Cells2 - адрес правой нижней ячейки диапазона. В данном варианте используется адресация ячеек типа строка-столбец, и адреса формируются с помощью свойства Cells. Такая ссылка позволяет программное формирование адресов ячеек.