МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПРИБОРОСТРОЕНИЯ И ИНФОРМАТИКИ
Кафедра «Бухгалтерский учет и финансы»
КУРСОВАЯ РАБОТА
По предмету: «Средства разработки офисных приложений»
На тему: «Программирование в среде VBA»
Выполнила студентка
гр. ЭФ-4 спец. 0605
Тимонина Елена
Проверила преподаватель
Шеверева Елена
Александровна
Москва 2 0 0 6
Содержание
Введение
Основная часть
Создание базы данных в Excel
Описание информационной модели.
Создание нестандартного окна диалога.
Разработка программного кода.
5. Рассмотрение примера работы программы
Заключение
Список использованных источников
Введение
Начиная с версии 5.0 в программу Excel включен специальный язык программирования, который получил название Visual Basic for Applications (VBA).
Введение достаточно мощного языка программирования в Excel делает эту программную платформу весьма привлекательной для профессионалов, которые занимаются разработкой специализированных прикладных систем.
Разработка языка программирования VBA, встраиваемого в прикладные системы, является одним из стратегических направлений компании Microsoft. Этот язык уже интегрирован в такие программы, как Word for Windows, Power Point и ряд других. VBA позволяет создавать программные модули, меню, диалоговые окна и другие ресурсы в среде Windows. Благодаря этому языку появляется возможность значительно расширить набор функций в Excel, а также создавать функции, значения которых зависят от некоторых условий и событий. В принципе, можно полностью перепрограммировать все функции программы Excel, если в этом появилась необходимость.
На сегодняшний день, VBA является мощным программным дополнением к таким пакетам как:
· Microsoft Office – Word, Excel, PowerPoint, Access, Outlook, FrontPage и тд.
· Microsoft Project
· CorelDraw версии 9 или 10 и Corel WordPerfect Office 2000
· Серия графических бизнес-приложений iGrafx от Micrografx
· Visio версии 4.5 , 5 или 2000
· AutoCAD R14, AutoCAD 2000 или AutoCAD 2000i для Windows
· Autodesk Map
· TurboCAD Professional
· M.Y.O.B. Accounting Software
· Пакет программ для учёта ресурсов Great Plains
· OmniTrader, средства оценки рисков и управления торговыми операциями.
· а также иные приложения, в которых могут использоваться как полноформатные версии VBA, так и урезанные (VBscript) и тд.
Список возможностей VBA достаточно большой, т.к. практически сам пользователь создаёт под себя программы или изменяет уже имеющиеся ресурсы.
Visual Basic for Applications – общая среда разработки, позволяющая решать разнообразные прикладные задачи: от автоматизации отдельных операций до создания законченных приложений в Microsoft Office.
К особенностям VBA можно отнести программный доступ к функциональным возможностям любого приложения Office, унифицированный язык программирования для всех приложений, Мощная и полнофункциональная среда разработки, поддержка элементов управления на базе ActiveX, новый способ создания диалоговых форм (окон), интеграция с базами данных, системами электронной почты и Интернет.
Целью данной курсовой работы является разработка программного кода. Для реализации поставленной цели автором решаются следующие задачи:
Создается база данных в Excel
Описывается информационная модель.
Создается нестандартное окно диалога.
Разрабатывается программный код.
Рассматривается пример работы программы.
Создание базы данных
Создадим базу данных в Excel для формирования прайс-листа. Для это заполним шапку исходной таблицы.
в первой колонке – № по порядку,
во второй – наименование товара,
в третей – единицы измерения,
в четвертой – количество,
в пятой объединенной колонке – цена, которая состоит из: оптовой, мелкооптовой и розничной.
В конце прайс-листа считается итог по количеству товара и итоги по каждому типу цены.
Получаем таблицу 1. Прайс-лист
№ |
Наименование товара |
Ед.изм. |
Кол-во |
Цена |
||
Опт |
Мелк |
Розн. |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Описание информационной модели
В рамках данной курсовой работы строится следующая информационная модель, рис.2.1.
Математическое обеспечение
Ц партии=Цед*К*НДС*Нтц*Н
Справочники Информацию по налогу на добавленную стоимость. Ставка НДС составляет 18% и 0%. Если НДС учитывается по ставке 18% необходимо активизировать флажок.
Выходная информация:
Цена партии товара с учетом налога на добавленную стоимость и наценки.
Входная информация:
Наименование товара;
2. Тип цены:
оптовая;
мелкооптовая;
розничная;
3. Единицы измерения;
4. Количество;
5. Цена единицы товара
Автомати-зированная информационная система
Промежуточная информация
Если на товар начисляется НДС, то необходимо цену единицы товара увеличить на 18%. В зависимости от типа цены, цену товара увеличивают при мелкооптовой и розничной на 5%, а оптовая цена остается исходной.
Рис.2.1
Ц партии = Цед*К*Н*НДС, где
Ц партии – цена партии товара;
К – количество единиц измерения;
Нтц – наценка, в зависимости от типа цены. Оптовая цена оставляет цену исходной, мелкооптовая увеличивает на – 5%, розничная на 5%;
НДС – налог на добавленную стоимость, если активизирован флажок НДС. НДС равен 1,18;
Н- наценка на товар.
Создание нестандартного окна диалога
Редактор Visual Basic предоставляет эффективные средства, позволяющие создавать нестандартные диалоговые окна для Microsoft Excel, Word и Power Point. Эти средства одинаковы для всех приложений.
Создав нестандартное диалоговое окно, можно добавить в него элементы управления на базе ActiveX. Такие элементы можно вставить и в документ, рабочий лист или на слайд. Чтобы указать, как должны реагировать нестандартные диалоговые окна и элементы управления, необходимо создать процедуры обработки событий, выполняемые при каждом возникновении соответствующих событий.
Запуск редактора VB осуществляется с помощью меню Сервис
Макрос Редактор Visual Basic.
Чтобы создать нестандартное диалоговое окно, необходимо создать форму (UserForm), добавить в нее элементы управления, установить их свойства и написать код, реагирующий на события, определенные для формы и элементов управления.
Разработка диалогового окна в редакторе Visual Basic происходит в режиме конструктора. В этом режиме элементы управления можно редактировать, но на события они не реагируют. При запуске диалогового окна происходит переключение в режим выполнения (run mode). В этом режиме элементы управления реагируют на события.
Создадим новое нестандартное окно – UserForm, при помощи команды в меню Insert (вставка). В окне Properties при помощи свойства Caption изменим заголовок на «Формирование прайс-листа».
Для добавления элементов управления предназначена панель элементов – ToolBox. Чтобы добавить элемент управления в нестандартное диалоговое окно, его необходимо выделить на панели элементов ToolBox, перетащить с помощью мыши на форму и подобрать размеры.
Каждая форма или элемент управления распознают определенный набор событий, вызываемых пользователем или системой. Чтобы указать, как форма или элемент управления должны реагировать на событие, пишутся процедуры обработки событий.
Добавим в созданное диалоговое окно элементы управления Label: наименование товара, тип цены, единицы измерения, количество, цена единицы товара. Добавим элементы управления TextBox – (раскрывающийся список) поля для заполнения типа цены и единицы измерения. Элемент управления Frame для выбора наценки. Элемент управления СhechBox (флажок) для указания наличия или отсутствия НДС. Необходимо добавить элементы управления СommandButton для заполнения прайс-листа и подсчета итогов.
Получившееся нестандартное диалоговое окно представлено в приложении 1.
Элементы управления на базе ActiveX можно добавить не только в нестандартные диалоговые окна, но и в рабочий лист. Добавим в рабочий лист кнопку для запуска созданного диалогового окна. Для этого используя панель инструментов Control Toolbox (элементы управления) меню View (Вид) команды Toolbars.
Разработка программного кода
С помощь закрытой процедуры Sub создаем кнопку ОК, при нажатии на которую заполняется прайс-лист. Задаем переменные i a присваивая им тип Variant. Переменная а задает номер прайс-листа. С вводом нового товара, ее значение увеличивается на единицу. Переменной i присваиваем значение 6, которое является начальной строкой для заполнения прайс-листа. Затем, используя оператор цикла Do While … Loop, который проверяет условие в начале цикла, и если оно истинно, переходит к выполнению цикла и продолжает, пока условие не станет ложным, присваиваем i= i+1. Второму столбцу i-ой строки присваивается наименование товара, вводимого пользователем, третьему – единицы измерения, четвертому – количество.
Используя оператор ветвления If…Then, который проверяет одно условие и выполняет оператор или блок операторов, в зависимости от типа цены пятому столбцу присваивается цена оптовой партии, шестому – мелкооптовой, седьмому – розничной. При этом, оптовая цена = количество умножить на цену, задаваемую пользователем; мелкооптовая и розничная учитывают наценку в 5%.
Также с помощью оператора ветвления If…Then, задаем три вида наценки:
5, 10 и 15%. При расчете цены партии товара учитывается НДС в 18%, если он помечен флажком в диалоговом окне.
Затем, с помощь закрытой процедуры Sub создаем кнопку Итог. Задаем переменные u,i,j,b,c и присваиваем начальные значения. С помощью оператора Do While … Loop задаем суммирование значений по столбцам количества, оптовой, мелкооптовой и розничной цены. Второму столбцу i-ой строки задается «Итого», а по столбцу 4,5,6,7 выводятся их итоговые значения.
Чтобы установить начальное значение, которое будет у элемента управления при каждом открытии содержащего его диалогового окна, необходимо добавить нужный код в процедуру обработки события Initialize формы UserForm, включающий этот элемент. Для данного примера для цены задается три ее вида (оптовая, мелкооптовая, розничная) и для единицы измерения два вида (шт. и кг.).
Чтобы вывести диалоговое окно на экран при выполнении программы, используем метод Show.
Для данного примера программный код выглядит следующим образом:
Private Sub CommandButton1_Click()
Dim i, a As Variant
With p
a = Cells(2, 3)
a = a + 1
Cells(2, 3) = a
i = 6
Do While Cells(i, 1) <> ""
i = i + 1
Loop
Cells(i, 1) = i - 5
Cells(i, 2) = .TextBox1
Cells(i, 3) = .ComboBox2
Cells(i, 4) = .TextBox2
If .ComboBox1 = "оптовая" Then
Cells(i, 5) = .TextBox2 * .TextBox3
Cells(i, 6) = 0
Cells(i, 7) = 0
Else
If .ComboBox1 = "мелкооптовая" Then
Cells(i, 5) = 0
Cells(i, 6) = .TextBox2 * .TextBox3 * 1.05
Cells(i, 7) = 0
Else
If .ComboBox1 = "розничная" Then
Cells(i, 5) = 0
Cells(i, 6) = 0
Cells(i, 7) = .TextBox2 * .TextBox3 * 1.05
End If
End If
End If
If .OptionButton1 = True Then
Cells(i, 5) = Cells(i, 5) * 1.05
Cells(i, 6) = Cells(i, 7) * 1.05
Cells(i, 7) = Cells(i, 7) * 1.05
End If
If .OptionButton2 = True Then
Cells(i, 5) = Cells(i, 5) * 1.1
Cells(i, 6) = Cells(i, 7) * 1.1
Cells(i, 7) = Cells(i, 7) * 1.1
End If
If .OptionButton3 = True Then
Cells(i, 5) = Cells(i, 5) * 1.15
Cells(i, 6) = Cells(i, 7) * 1.15
Cells(i, 7) = Cells(i, 7) * 1.15
End If
If .ComboBox1 = True Then
Cells(i, 5) = Cells(i, 5) * 1.18
Cells(i, 6) = Cells(i, 7) * 1.18
Cells(i, 7) = Cells(i, 7) * 1.18
End If
End With
End Sub
Private Sub CommandButton2_Click()
Dim u, i, j, b, c
With p
i = 6
u = 0
j = 0
b = 0
c = 0
Do While Cells(i, 1) <> ""
u = u + Cells(i, 4)
j = j + Cells(i, 5)
b = b + Cells(i, 6)
c = c + Cells(i, 7)
i = i + 1
Loop
Cells(i, 2) = "ИТОГО"
Cells(i, 4) = u
Cells(i, 5) = j
Cells(i, 6) = b
Cells(i, 7) = c
End With
End Sub
Sub UserForm_Initialize()
With p
With .ComboBox1
.AddItem "оптовая"
.AddItem "мелкооптовая"
.AddItem "розничная"
End With
With .ComboBox2
.AddItem "шт."
.AddItem "кг."
End With
End With
End Sub
Пример работы программы
Водим начальные данные в диалоговое окно и получаем прайс-лист.
|
Прайс-лист № |
5 |
|
|
|
|
|
|
|
|
|
|
|
№ |
Наименование товара |
Ед.Изм. |
Кол-во |
Цена |
||
Опт. |
Мелк. |
Розн. |
||||
1 |
Товар 1 |
шт. |
950 |
149625 |
0 |
0 |
2 |
Товар 2 |
шт. |
100 |
0 |
0 |
0 |
3 |
Товар 3 |
шт. |
210 |
0 |
0 |
0 |
4 |
Товар 4 |
кг. |
350 |
0 |
16905 |
16905 |
5 |
Товар 5 |
кг. |
300 |
6300 |
0 |
0 |
|
ИТОГО |
|
1910 |
155925 |
16905 |
16905 |
Заключение
Благодаря VBA фирме Microsoft удалось не только расширить возможности языка макрокоманд Excel 5.0, но и ввести новый уровень прикладного программирования, поскольку VBA позволяет создавать полноценные прикладные пакеты, которые по своим функциям выходят далеко за рамки обработки электронных таблиц.
Ознакомившись с Visual Basic for Applications, автор решил ряд задач: создал нестандартное диалоговое окно, разработал программный код и рассмотрел пример работы программы.
В качестве примера автор создал прайс-лист, который содержит наименование товара, единицы измерения и тип цены, произвел необходимые расчеты для формирования цены партии товара, в зависимости от типа – оптового, мелкооптового и розничного, а также с учетом наценки и НДС.
Список использованных источников
Шеверева Е.А. Учебное пособие по дисциплине: «Средства разработки офисных приложений», Москва, 2004.
Назаров С.В., Мельников П.П. Программирование на MS Visual Basic: Учеб. Пособие / Под. Ред. С.В. Назарова. – М.: Финансы и статистика, 2003.