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

 
 
 
 
 
 
 
 
 

Курсовой  проект по информатике на тему: 

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

Вариант № 18 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Москва 2010 
 
 
 
 
 
 

Содержание: 

    Введение

  1. Постановка задачи
  2. Теоретическое введение
  3. Разработка проекта
  4. Окончательный вид таблицы «Экспорт основных товаров из России в январе- сентябре 1992г.»

Заключение

Список используемой литературы 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Введение

       Информатика это предмет, изучающий компьютер  и его составляющие, а также  различные программы позволяющие производить расчеты, делать графики, составлять таблицы и т.д. Часто при работе с приложениями MS Office возникает необходимость автоматизировать выполнение той или иной последовательности действий, дополнить интерфейс приложения новыми окнами диалога, панелями инструментов и, таким образом, расширить возможности работы с документами. Для этого разработчики MS Office предоставили в распоряжение инструмент с большими возможностями, который достаточно прост в освоении. Этим инструментом является язык программирования Visual Basic for Applications (VBA). Инструментарий Visual Basic используется в качестве внутреннего языка программного пакета Microsoft Office (Word, Excel и др.). С помощью Visual Basic можно создавать приложения практически для любой области современных компьютерных технологий: бизнес-приложения, игры, мультимедиа, базы данных.

       Сейчас  этот язык используют не только программисты-любители, но и все больше коммерческие организации. Так, например абсолютное большинство организаций занимающихся реализацией продукции используют в своей работе прайс-листы, созданные в Excel, с обработкой данных программами написанными на языке Visual Basic.

       Visual Basic является мощным программным средством, с помощью которого можно реализовать широкий спектр практических задач. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1. Задание

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

  1. Процедуру макроса формирования заголовка таблицы;
  2. Диалоговое окно (форму пользователя), реализующую интерфейс пользователя с проектом;
  3. Диалоговое окно (форму пользователя) для ввода данных в таблицу;
  4. Процедуру нахождения строки ввода;
  5. Процедуру построчной записи информации из окон ввода формы в таблицу;
  6. Процедуру очистки окон ввода диалогового окна;
  7. Процедура расчета значений незаполненных столбцов таблицы;расч
  8. Процедуру очистки таблицы;
  9. Вспомогательные процедуры;ввод, закр, выход
  10. Управляющую кнопку на рабочем столе для запуска проекта.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2. Теоретическое введение

       2.1 Анализ средств решения задачи и предварительный состав проекта

       VBA относится к языкам объектно-ориентированного программирования, поэтому знакомство с ним естественно начать с понятия объекта.

  • Объекты:

       Объект – основной элемент VBA Excel. В VBA объектами являются рабочая книга, рабочий лист и его составляющие.

       Примеры объектов:

  • Sheet – лист Excel;
  • Cell – ячейка;
  • Range – диапазон ячеек;
  • Application – приложение;
  • UserForm – пользовательская форма.

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

  • Методы

       Над объектами можно совершать различные  действия. Действия, совершаемые над  объектами, называются методами. Например, ячейку можно очистить (Clear), приложение закрыть (Quit), пользовательскую форму показать (Show) или скрыть (Hide).

       Название  метода отделяется от названия объекта  точкой «Объект.метод».

       Примеры использования методов:

  • Range («B2:E2»).Select – выбрать диапазон ячеек В2:Е2;
  • Range («C1:C5»).Clear – очистить диапазон ячеек С1:С5;
  • UserForm2.Hide – скрыть форму № 2;
  • UserForm5.Show – показать форму № 5;
  • Application.Quit – выйти из приложения.
  • Свойства

       Свойствами  описываются характеристики объектов. Например, размер и цвет шрифта, положение  формы на экране или состояние объекта (доступность, видимость). Чтобы изменить характеристику объекта, надо просто изменить значение свойства, т.е. присвоить ему определенные значения.

       Синтаксис установки значения свойства: «Объект.Свойство = Значение Свойства», – где «Объект» обозначает имя объекта, «Свойство» – имя свойства, которому присваивается значение. Имя объекта отделяется от имени свойства точкой.

       Примеры свойств:

  • Range («D1»).Value = 2005 – поместить в ячейку D1 значение 2005;
  • Range («C1:C10»).Text = «Информатика» – поместить в диапазон ячеек С1:С10 текст Информатика;
  • Range («В2»).Font.Size = 14 – в ячейке В2 установить размер шрифта 14.
 
    • События

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

       В языке VBA для каждого объекта определен  набор стандартных событий. Стандартное  событие для объекта «кнопка» (CommandButton) – щелчок мышью (Click).

       Если  пользователь нажимает на кнопку, то это  событие. На это событие должен быть отклик, т.е. выполнение какой-либо программы. Такая программа называется процедурой обработки событий и имеет стандартное имя. Элементы языка VBA

       Объекты – основные элементы языка VBA, но не единственные. К другим элементам относятся: константы, переменные, массивы, выражения, встроенные функции, встроенные диалоговые окна, операторы.

       Константы – данные, не изменяющиеся в процессе решения задачи. Константы бывают двух видов: числовые и символьные.

       Числовые  константы – это целые либо вещественные числа.

       Символьные  константы – текст, заключенный в кавычки. Пример числовой константы – 5,8 (использование запятой или точки зависит от настроек операционной системы). Пример символьной константы – ООО «Темп».

       Переменные  – данные, значения которых меняются в ходе выполнения программы. Для переменной задается имя и тип.

       Имя переменной должно начинаться с буквы  и может содержать любую комбинацию букв, цифр и символов за исключением точек, пробелов и следующих символов: «!», «%», «&», «$», «#», «@». Длина имени не должна превышать 255 символов. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур. Переменные типа (Variant) могут хранить все, что в них поместят. Их тип изменяется в зависимости от последнего присвоения. В программах переменные описываются с помощью специального оператора (Dim). Массив – упорядоченная совокупность однотипных переменных. Массивы имеют имя и размерность. Имя массива подбирается с учетом тех же правил, что и имена переменных. Размерность – это количество элементов (переменных), составляющих массив.

       Из  констант, переменных и встроенных функций (они рассмотрены далее) с помощью скобок и знаков арифметических операций («+», «-», «*», «/», «^») можно составлять выражения. Частным случаем выражения может быть просто одиночный элемент, т.е. константа, переменная или обращение к встроенной функции. В VBA имеется большой набор встроенных функций, которые разделяют на категории. Примеры категорий:

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

       Структура редактора VBA

Редактор VBA активизируется командой Сервис      Макрос      Редактор Visual Basic. После выполнения команд мы попадаем в редактор VBA. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид (View)      Microsoft Excel. Рассмотрим основные компоненты окна редактора. Внешний вид окна редактора представлен на рисунке 1.

Рисунок 1 – Окно редактора Visual Basic в Excel 

       Окно  редактора состоит из следующих  компонентов:

  • панели инструментов;
  • окно проекта;
  • окно свойств;
  • окно редактирования кода;
  • меню.

       2.2 Условынй оператор  If и оператор цикла For-Next

       Условный оператор If

       Оператор  условного перехода, выполняющий  роль ветвления программы на основании какого-либо условия. Простейшими операторами условного перехода являются операторы «If…Then», «If…Then…Else».

       Оператор  «If…Then» (см. таблицу 1) позволяет выбирать единственную ветвь процедуры, тогда как «If…Then…Else» (см. таблицу 2) дает возможность выбирать из двух и более альтернативных ветвей кода процедуры на основе оценки того, является ли условие равным «True» или «False». 

       Таблица 1. Синтаксис «If…Then»

Вариант 1: If Условие Then Операторы

Первый  вариант требует написания оператора  в одну строку, при этом в секции «Операторы» можно указывать  несколько операторов, разделяя их двоеточием.

Вариант 2: If Условие Then Операторы

End If

Второй  вариант позволяет указывать несколько операторов в разных строках.

        

       Логика  работы следующая: VBA сначала оценивает  логическое выражение, представленное в секции «Условие», если это логическое выражение равно «True», то выполняется оператор (операторы) секции «Операторы»; затем VBA продолжает выполнение кода следующего за строкой «If…Then» (Вариант 1) или за ключевыми словами «End…If» (Вариант 2). Если же логическое выражение равно «False», то операторы секции «Операторы» пропускаются и выполняется код, следующий за этой секцией.

     Таблица 2. Синтаксис «If…Then…Else»

Вариант 1: If Условие Then Операторы 1 Else Операторы2

Вариант требует написания оператора  в одну строку, при этом в секциях  «Операторы 1» и «Операторы 2»  можно указывать несколько операторов, разделяя их двоеточием.

Вариант 2: If Условие Then Операторы 1 Else Операторы 2

End If

Вариант позволяет указывать несколько  операторов в разных строках.

        

       Логика  работы следующая: VBA сначала оценивает  логическое выражение, представленное в секции «Условие», если это логическое выражение равно «True» то выполняется оператор (операторы) секции «Операторы 1»; затем VBA продолжает выполнение кода следующего за строкой «If…Then» (Вариант 1) или за ключевыми словами «End If» (Вариант 2). Если же логическое выражение равно «False», то выполняются операторы секции «Операторы 2».

       Оператор  цикла For-Next

       Инструкция  «For…Next» (см. таблицу 3) повторяет выполнение группы инструкций указанное число раз.

       For счетчик = начало To конец [Step шаг]

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

       [Exit For]

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

       Next [счетчик] 

     Таблица 3. Синтаксис инструкции «For…Next»

Элемент Описание
Счетчик Обязательный. Числовая переменная, используемая в  качестве счетчика цикла. Эта переменная не может принадлежать к типу Boolean или быть элементом массива.
Начало Обязательный. Начальное значение переменной счетчик.
Конец Обязательный. Конечное значение переменной счетчик.
Шаг Необязательный. Значение, на которое изменяется счетчик  при каждом выполнении тела цикла. Если это значение не задано, по умолчанию шаг равен единице.
Инструкции Необязательный. Одна или несколько инструкций между  For и Next, которые выполняются указанное число раз.
 
 
 
 
 
 

       Пример цикла «For…Next»:

For counter = Star To End [Step StepSize]

Statements

Next [counter]

Counter –  любая численная переменная VBA;

Start –  любое численное выражение, определяет  начальное значение для переменной «counter»;

End –  численное выражение, определяет  конечное значение для переменной  «counter»;

Statements – один, несколько или ни одного  оператора VBA (тело цикла). 

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

Экспорт основных товаров  из России в январе-сентябре 1992г.
 
Наименование  товара
 
 
Единица

измерения

 
 
Группа
 
 
Количество
 
 
Стоимость

млн. долл

 
Транс. Рас.

(10%)

млн. долл.

 
Торг. Расх. (15%) млн. долл.
 
Суммар. Стоим.

млн. долл.

Нефть Тыс. тонн   35547.9 4553.0      
Уголь Тыс. тонн   6197.2 262.0      
Газ Млрд. м   64574.5 5334.9      
Лес Тыс. м   4341.0 308.1      
Руды Тыс. тонн   5375.1 126.4      
Бумага Тыс. тонн   94.7 33.6      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  1. Разработка  проекта
    1. Процедура макроса формирования заголовка таблицы

Sub Шапка()

'

' Шапка Макрос

' Макрос записан  09.12.2010 (student)

'

Range("A1:H3").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlBottom

        .WrapText = True

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone

    Selection.Borders(xlDiagonalUp).LineStyle = xlNone

    With Selection.Borders(xlEdgeLeft)

        .LineStyle = xlContinuous

        .Weight = xlThin

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeTop)

        .LineStyle = xlContinuous

        .Weight = xlThin

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeBottom)

        .LineStyle = xlContinuous

        .Weight = xlThin

        .ColorIndex = xlAutomatic

    End With

    With Selection.Borders(xlEdgeRight)

        .LineStyle = xlContinuous

        .Weight = xlThin

        .ColorIndex = xlAutomatic

    End With

    Selection.Borders(xlInsideVertical).LineStyle = xlNone

    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

    Columns("A:A").ColumnWidth = 17.71

    Columns("B:B").ColumnWidth = 17

    Columns("C:C").ColumnWidth = 17.86

    Columns("D:D").ColumnWidth = 18

    Columns("E:E").ColumnWidth = 17.71

    Columns("F:F").ColumnWidth = 15.71

    Columns("G:G").ColumnWidth = 11.86

    Columns("H:H").ColumnWidth = 11.71

    Range("A1:H3").Select

    ActiveCell.FormulaR1C1 = _

        "Курсовая работа по информатике.Тема: обьектно- ориентированное програмирование на VBA Выполнила: Чайко Яна Владимировна, студентка ЭЭ-093 "

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

        .Name = "Arial Cyr"

        .FontStyle = "полужирный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("A1:H3").Select

    Columns("E:E").ColumnWidth = 11.86

    Columns("F:F").ColumnWidth = 11.86

    Columns("B:B").ColumnWidth = 11.43

    Columns("A:A").ColumnWidth = 11

    Range("A1:H3").Select

    ActiveCell.FormulaR1C1 = _

        "Курсовая работа по информатике.Тема: обьектно- ориентированное програмирование на VBA Выполнила:      Чайко Яна Владимировна, студентка ЭЭ-093 "

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

        .Name = "Arial Cyr"

        .FontStyle = "полужирный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("A1:H3").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlCenter

        .WrapText = True

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Range("A1:H3").Select

    ActiveCell.FormulaR1C1 = _

        "Курсовая работа по информатике.Тема: обьектно- ориентированное програмирование  на VBA Выполнила:      Чайко  Яна Владимировна, студентка ЭЭ-093 "

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

        .Name = "Arial Cyr"

        .FontStyle = "полужирный"

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("A1:H3").Select

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlCenter

        .WrapText = True

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Range("A4").Select

    Columns("A:A").ColumnWidth = 14

    Range("A4:A6").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlCenter

        .WrapText = True

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = True

    End With

    Range("A4:A6").Select

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

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

        .Name = "Arial Cyr"

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

        .Size = 10

        .Strikethrough = False

        .Superscript = False

        .Subscript = False

        .OutlineFont = False

        .Shadow = False

        .Underline = xlUnderlineStyleNone

        .ColorIndex = xlAutomatic

    End With

    Range("B4:B6").Select

    With Selection

        .HorizontalAlignment = xlGeneral

        .VerticalAlignment = xlCenter

        .WrapText = True

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