Объектно-ориентированное программирование на VBA в среде Excel

Автор: Пользователь скрыл имя, 13 Января 2011 в 18:15, курсовая работа

Краткое описание

Развитие систем программирования на основе Basic второго поколения началось с появлением в начале 80-х годов персональных компьютеров. В конце 80-х насчитывалось около десятка Basic-систем различных фирм-разработчиков. С 1989 года этим языком стала заниматься только компания MicroSoft. Basic стал намного популярнее в 1991 году, когда компания MicroSoft выпустила Visual Basic третьего поколения для Windows.

Оглавление

Теоретическая часть……………………………………………………………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

Файлы: 1 файл

кусовик.doc

— 142.00 Кб (Скачать)

     -циклы  с предусловием

     -циклы  с постусловием.

     Организовать  выполнение циклов неопределённое число  раз возможно с помощью нескольких операторов. Один из них – Do...Loop, который имеет 4 модификации и организуется с помощью следующих конструкций: 1.Цикл с предусловием –

     Do [While/Until условие]

     [инструкции]

     [Exit Do]

     [инструкции]

     Loop 

     2.Цикл  с постусловием – 

     Do

     [инструкции]

     [Exit Do]

     [инструкции]

     Loop[While/Until условие].

     Оператор  Do...Loop содержит следующие элементы: Do – ключевое слово начала цикла; While/Until – ключевое слово, определяющее условие повторения цикла; условие – выражение, формирующее условие выполнения цикла и возвращающее значение логического типа(True или False); инструкции - составляющие область цикла инструкции; Exit Do – инструкция альтернативного выхода из цикла; Loop – ключевое слово завершения оператора цикла. 

6. Процедуры и встроенные функции организации диалога 

     Решение практически любой задачи, а также  составления программы, целесообразно  разбивать на отдельные логически завершённые фрагменты. Все языки программирования содержат в себе 2 инструмента структурирования программы – подпрограммы-процедуры и подпрограммы-функции. В данной работе используются процедуры. Процедура – последовательность совместно выполняемых инструкций, имеющая имя. Процедуры занимают центральное место в VBA программировании и подразделяются на несколько типов. Один из них – процедура пользователя, которая имеет следующую конструкцию:

     [Static,Public,Private] Sub Имя Процедуры [(Список_Аргументов)]

     [инструкции]

     [Exit Sub]

     [инструкции]

     End Sub

     Процедура пользователя содержит элементы: Sub – ключевое слово, соответствующее началу конструкции определения процедуры; Имя Процедуры – обязательный элемент, удовлетворяющий принятым в языке правилам формирования имён переменных; Список_Аргументов – список разделённых запятыми данных, передаваемых в процедуру или возвращаемых ею при вызове подпрограммы Sub; Exit Sub – инструкция немедленного выхода из процедуры Sub; инструкции – необязательный элемент, любая группа инструкций, выполняемых в процедуре Sub.

     Для организации ввода и вывода информации в процедурах VBA применяются 2 стандартные диалоговые функции. Одна из них – InputBox создаёт окно ввода данных, вторая – MsgBox формирует достаточно мощное окно сообщений. В данной работе использовалась функция InputBox, которая выводит на экран диалоговое окно, содержащее сообщение, текстовое поле ввода информации пользователя и 2 управляющие кнопки. При этом прерывается выполнение работающей процедуры и устанавливается режим ожидания ввода текста пользователем или нажатия одной из кнопок. Синтаксис этой функции: InputBox(сообщение[,заголовок] [, текст_по_умолчанию]), где сообщение – текст в диалоговом окне; заголовок – строковое выражение, отображаемое в строке заголовка диалогового окна; текст_по_умолчанию - строковое выражение, отображаемое в поле ввода в момент вывода окна на экран. 

7. Визуальные элементы управления. Экранная форма пользователя 

     Визуальные  элементы управления впервые были применены в первой версии Visual Basic, созданной фирмой Microsoft в 1991 году. Они значительно упростили программирование интерфейса прикладной программы, работающей в новой для того времени операционной среде Windows. Элемент управления – объект, помещаемый пользователем в форму или на рабочий лист и имеющий собственный набор распознаваемых свойств, методов и событий. Размещение элементов управления в форме пользователя осуществляется при помощи панели инструментов VBA “Toolbox”, которая появляется на экране при вставке формы. Среди множества элементов управления наиболее часто используются три – «Командная кнопка» (CommandButton), «Текстовое поле» (TextBox) и «Надпись» (Label). Элемент «Командная кнопка» (CommandButton) всегда связан с процедурой обработки событий. Элемент «Текстовое поле» (TextBox) используется для ввода информации в программу или вывода сообщений. Элемент «Надпись» (Label) применяется только для вывода различных текстов в форме, а также рисунков. Элементы управления начинают работать и реагировать на действия пользователя только после того, как они помещены на рабочий лист или форму пользователя.

     Для разработки более удобных и разнообразных  окон пользователя применяется объект «Форма» (UserForm). Форма – это окно, конструируемое пользователем. Объект UserForm представляет собой диалоговое окно, являющееся составной частью интерфейса пользователя в приложении. Для того чтобы вставить форму в проект нужно использовать вставку «UserForm» из меню «Вставка». Формам пользователя присущи также и методы, которые позволяют воздействовать на неё. Например, Load – загружает форму пользователя в оперативную память, но не отображает её на экране; Unload – удаляет форму из памяти; Show – отображает на экране форму пользователя. Программирование работы с формами пользователя заключается в написании процедур реакции на различные события, которые могут произойти при работе пользователя с формой. При создании объекта UserForm VBA система автоматически создаёт связанный с ним модуль. В этом модуле размещаются процедуры обработки событий Формы и размещённых в ней элементов управления. В общем случае заготовка процедуры обработки события имеет синтаксис:

     Private Sub Объект управления _Событие()

     End Sub

     В последующем пользователь в текст  заготовки добавляет необходимые для решения поставленной задачи инструкции и получает завершённую процедуру обработки конкретного события конкретным объектом (элементом управления).  
 
 
 
 
 
 
 

  
 

Практическая  часть: 

1. Задание: 

     Для размещения на рабочем листе Excel табличного документа и визуальных элементов управления в среде VBA разработать проект, включающий в себя следующие основные компоненты:

    1. Процедуру макроса формирования заголовка таблицы и названия столбцов.
    2. Форму пользователя ввода данных строк таблицы.
    3. Процедуру построчной записи считанной информации в таблицу.
    4. Процедуру расчёта незаполненных столбцов таблицы на основе известных данных строк.
    5. Вспомогательную процедуру очистки таблицы.
 

     Исходная  таблица:

     «Список товаров, подготовленных к продаже. Ожидаемая выручка» 

Номенк. Номер Наименов. Товара Еден. Изм. Цена  за ед.,руб. Кол-во Сумма, руб. Налог (20%) Всего, руб.
13675 Шапки шт. 788,00 64     60518,40
3816 Пальто шт. 1435,80 42     72364,32
13855 Платки шт. 194,35 86     20056,92
3843 Рубашки шт. 220,75 110     29139,00
3811 Куртки шт. 984,40 38     44888,64
13868 Костюмы шт. 1495,00 40     71760,00
            Итого 298727,3
 
 

2. Вид формы UserForm1: 

 
 
 

3. Вид формы UserForm2:  

 
 
 
 

4.  «Макрос1» 

Sub Макрос1()

' Макрос1 Макрос

' Макрос записан 25.11.2008 (User)

    Range("A1:H1").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlBottom

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Selection.Font.Bold = True

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlBottom

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Range("A1:H1").Select

    ActiveCell.FormulaR1C1 = _

        "Список товаров, подготовленных к продаже. Охидаемая выручка"

    Range("A3:H3").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlBottom

        .WrapText = True

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = False

    End With

    Range("A3").Select

    ActiveCell.FormulaR1C1 = "Номенк. Номер"

    With ActiveCell.Characters(Start:=1, Length:=13).Font

        .Name = "Arial Cyr"

        .FontStyle = "обычный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("B3").Select

    ActiveCell.FormulaR1C1 = "Наименов. Товара"

    With ActiveCell.Characters(Start:=1, Length:=16).Font

        .Name = "Arial Cyr"

        .FontStyle = "обычный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("C3").Select

    ActiveCell.FormulaR1C1 = "Еден. Изм."

    With ActiveCell.Characters(Start:=1, Length:=10).Font

        .Name = "Arial Cyr"

        .FontStyle = "обычный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("D3").Select

    ActiveCell.FormulaR1C1 = "Цена за ед.,руб."

    With ActiveCell.Characters(Start:=1, Length:=16).Font

        .Name = "Arial Cyr"

        .FontStyle = "обычный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("E3").Select

    ActiveCell.FormulaR1C1 = "Кол-во"

    With ActiveCell.Characters(Start:=1, Length:=6).Font

Информация о работе Объектно-ориентированное программирование на VBA в среде Excel