ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ

216919
знаков
8
таблиц
10
изображений

1 ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ

1.1.1 Обоснование выбора языка программирования

Лучшей среды программирования для создания информационного обеспечения в контуре любой АИС нашего бизнес – проекта можно считать MS Office. Одним из наиболее важных и полезных аспектов использования MS Office является автоматизация некоторых процессов взаимодействия использователя и приложений Office(Excel, Access,Word), которые позволяют решать, практически, все современные бизнес – задачи : от создания простых документов и отчетов до полной автоматизации докуиментооборота с использованием систем управления БД. Это связано с тем, что все приложения Office поддерживают язык программирования Basic for application (VBA). Важнейшим достоинством является возможность объединить любые приложения MS Office для выполнения одной или нескольких задач.

В последнее время все более и более возрастает значимость разработки приложений на базе электронных таблиц Excel – продукта с высокой степенью программируемости из-за поддержки VBA.Таким образом, для разработчиков АИС важными являются следущие возможности использования VB в среде MS Excel:

1)        Файловая структура. Ориентация на многолистовую структуру позволяет легко организовывать элементы приложения и хранить его в единственном файле;

2)        VBA – это макроязык, позволяет создавать структурированные программы непосредственно в Excel.

3)        Excel позволяет довольно легко вставить в рабочий лист различные элементы управления, например, кнопки, поля со списком, переключатели. Можно также легко создавать диалоговые окна, имеющие профессиональный внешний вид.

4)        Для упрoщения формул и вычислений можно с помощью VBA создавать пользовательские функции рабочих листов.

5)        Имеется возможность вносить изменения в элементы меню, добавлять в имеющиеся меню новые элементы или создавать полностью новые меню.

В связи с этим в теоретическом разделе наряду с вопросами разработки АИС, рассматриваются также вопросы связанные с использованием VBA и MS Excel.

1.2 Введение в Visual Basic For Application

Программирование в Excel , в основном, сводится к управлению объектами. Эта задача выполняется с помощью инструкций, введенных на языке, понятном Excel. Рассмотрим далее этот язык, а также объекты, включенные в Excel .

История языка BASIC

Многие опытные программисты не воспринимают идею программирования наВА81Свсерьез. Само название (аббревиатура от Beginner's ЛП-purpose Symbolic Instruction Code —универсальный символический язык инструкций для начинающих) предполагает, что это не профессиональный язык.

 Действительно, BASIC был разработан в начале 1960-х годов и задумывался как наглядное средство преподавания методов программирования студентам колледжей. BASIC довольно быстро приобрел большую популярность, и сейчас поддерживается во многих типах компьютеров.

С годами BASIC развивался и улучшался. Например, во многих ранних версиях он был интерпретируемым языком. Каждая строка перед выполнением интерпретировалась, чем и была обусловлена медленная скорость обработки кода. В большинстве современных вариантов языка BASIC программа компилируется, и в результате выполнение программы значительно ускорилось, а перемещаемость программы улучшилась.

BASIC стал намного популярнее в 1991 году, когда компания Microsoft выпустила Visual Basic для Windows (на данный момент существующий в версии 6.0). Этот продукт облегчил массовую разработку самостоятельных приложений для Windows. У Visual Basic мало общего с ранними версиями BASIC, но последний представляет собой основу, на которой построен VBA. Обзор VBA Excel 5 — это первое приложение на рынке, в котором появился Visual Basic for Applications (VBA). VBA считается стандартным языком написания сценариев для приложений Microsoft, и в настоящее время входит в состав всех приложений Office 2002 и даже прило­жений других компаний. Следовательно, овладев VBA для Excel, вы сможете сразу перейти к созданию макросов для других программных продуктов Microsoft (равно, как и приложений других компаний). Более того, вы сможете создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

Объектные модели

Секрет использования VBA заключается в правильном понимании объектной модели В каждом отдельном приложении. Следует отметить. VBA всего лишь управляет объекта­ми, а у каждого программного продукта (Excel. Word. Access. PowerPoint и т.п.) своя объект­ная модель. Приложением можно управлять программным образом только с помощьюобъек­тов, которые представлены в этом приложении.

Например, в объектной модели Excel представлено несколько мощных объектов анали­за данных, например, рабочие листы, диаграммы, сводные таблицы, сценарии, а также многочисленные математические, финансовые, инженерные и общие функции. С помощью VBA вы можете работать с этими объектами и разрабатывать автоматизированные проце­дуры.

Сравнение VBA и XLM

До появления Excel 5 разработчиками использовался мощный (но сложный для понима­ния) язык макросов под названием XLM. Более поздние версии Excel все еще выполняют макросы XLM, но, начиная с Excel 97, пользователи не имеют возможности записывать мак­росы на языке XI.M. Для современных разработок используется исключительно VBA.

Основы VBA

Действия в VBA осуществляются в результате выполнения кода VBA. • Вы создаете (или записываете) программу VBA. которая сохраняется в модуле VBA.

• Модуль VBA состоит из процедур.

Процедура, по существу, представляет собой элемент компьютерной программы, выпол­няющей определенное действие. Ниже приведен пример простой процедуры под назва­нием Test: она вычисляет сумму, а затем отображает результат в окне сообщений:

Sub Test()

 Sum =1 + 1

MsgBox "Ответ: " & Sum

 End Sub

• Кроме процедур Sub. в модуле VBA может использоваться второй тип процедур — функции.

Процедура функции возвращает одно значение (или массив). Функция может быть вы­звана из другой процедуры VBA или использоваться в формуле рабочего листа. Далее приведен пример функции с названием AddTwo:

 Function AddTwo(argl, arg2)

AddTwo = argl + arg2

 End Function

• VBA управляет объектами, которые представлены запускающим приложением (в .дан­ном случае Excel).

Excel позволяет управлять более, чем ста классами объектов, включая рабочую книгу, рабо­чий лист, диапазон ячеек рабочего листа, диаграмму и нарисованный прямоугольник. В ва­шем распоряжении находятся и другие объекты, с которыми можно работать в VBA.

•Классы объектов организованы в иерархическую структуру.

Объекты могут быть контейнерами для других объектов. Например, Excel — это объ­ект под названием Application, он содержит другие объекты, например. Workbook (Рабочая книга). Объект Workbook может состоять из других объектов, например. Worksheet (Рабочий лист) и С h а г t (Диаграмма). Объект Worksheet также содер­жит объекты, например. Range (Диапазон), Р i v о t Т a b 1 е (Сводная таблица) и т.д. Организацию таких объектов называют объектной моделью Excel.

Одинаковые объекты формируют коллекцию. Например, коллекция Worksheets состоит из всех рабочих листов конкретной рабочей книги, а коллекция CommandBars — из всех объектов CommandBar. Коллекции — это объекты в себе.

При ссылке на объект, вложенный в другой объект, положение в иерархической струк­туре объектной модели задается с помощью точки-разделителя. Например, на рабочую книгу с названием Книга 1.xls в можно сослаться следующим образом:

Application.Workbooks("Книга1.xls") Это ссыпка на рабочую книгу Книга1.xls в коллекции Workbooks. Коллекция Workbooks находится в объекте Application. Переходя на следующий уровень, вы можете сослаться на лист Лист1 в книге Книга 1 .xls:

Application.Workbooks("Книга 1 .xls"). Worksheets ("Лист1") Перейдите на один уровень ниже, после чего необходимо сослаться на отдельную ячейку:

Application.Workbooks("Книга1.xls").Worksheets("Лист1").Range("A")

При опущенной ссылке на объект Excel по умолчанию используются активные объекты. Если книга Лист1 — активная рабочая книга, то предыдущую ссылку можно упростить:

Worksheets("Лист1").Range("Al") Если вы знаете, что лист Лист 1 — активный, то ссылку можно упростить еще больше:

Range("Al")

 

Объекты имеют свойства.

Свойство можно считать параметром или настройкой объекта. Например, объект диапазона имеет такие свойства, как Value (Значение) и Name (Имя), Объект диа­граммы обладает такими свойствами, как Н a s Т i 11 е (Заголовок) и Туре (Тип). Вы вправе использовать VBA, чтобы задать свойства объектов и их изменить.

Свойства в программном коде отделяются от названия объекта точкой. Например, вы можете сослаться на значение в ячейке А1 листа Лист1 следующим образом: Worksheets( " Лист1 "). Range( " Al" ). Value

Рабочая книга Excel является объектом, но она также содержит другие объекты, например, рабочие листы, диаграммы, модули VBA и т.д. Более того, каждый объект в рабочей книге может содержать собственные объекты. Например, объект worksheet (Рабочий лист) включает объекты Range (Диапазон), pivottrable (Сводная таблица), Shape (Форма) и т.д.

Помимо свойств, объекты Excel также располагают методами, выполняющими операции над объектом. Например, метод clearContents, удаляет содержимое объекта Range.

В Excel методы иногда используются для изменения свойств объекта. Метод ciearContents

объекта Range изменяет свойство Value объекта Range.

В VBA существует возможность писать процедуры для управления объектами Excel.

Вы вправе присваивать значения переменным VBA. Переменную можно считать кон­стантой, которая используется для хранения конкретного значения. Чтобы присвоить значение ячейки А1 листа Лист1 переменной с названием Interest, используйте следующий оператор VBA:

Interest = Worksheets("Лист1").Range("Al").Value

У объектов есть методы. Метод — это действие, которое выполняется над объектом. Например, один из методов объекта Range — ClearContents. Этот метод удаляет содержимое диапазона ячеек.

Методы вводятся после названия объекта с методом, в роли разделителя выступа­ет точка.

Например, для удаления содержимого ячейки А1 активного рабочего листа использу­ется следующая команда:

R a n g е (" А1" ). ClearContents

VBA также включает конструкции современных языков программирования (в том числе массивы, циклы и т.д.).

Знакомство с редактором Visual Basic

Для работы и просмотра модулей VBA используется редактор Visual Basic (VBE— Visual Basic Editor).

Модули VBA все еще сохраняются вместе с файлами рабочей книги; просто они не видны до тех пор. пока не запущен редактор VBE.

VBE— это отдельное приложение, запускающееся в Excel. Программа сама выполняет всю операцию по запуску VBE. когда это необходимо. VBE не может запускаться отдельно от Excel; для запуска VBE используется только Excel.

Запуск VBE

Во время работы в Excel вы можете перейти к окну VBE с помощью одного из следующих способов.

 1) нажать <Alt+F11>.

 2)Выбрать команду Сервис – Макрос - Редактор Visual Basic.

 3) Щелкнуть на кнопке Редактор Visual Basic, расположенной на панели инструментов Visual Basic.

Окна VBE

VBE состоит из ряда элементов. В следующий разделах кратко описаны ключевые компо­ненты редактора Visual Basic.

Строка меню

Строка меню VBE. естественно, работает, как и строка меню любого другого приложения.

Она содержит команды, используемые для управления различными компонентами VBA. Кроме того, для выполнения многих команд меню используются комбинации клавиш. На­пример, для команды ViewAImmediate Window (Вид - Окно отладки) применяется комби­нация клавиш <Ctrl+G>.

В VBE также представлены контекстные меню. Щелкнув правой кнопкой мыши практически на любых элементах окна VBE, вы увидите меню, предлагающие ряд команд.

Панели инструментов

Стандартная панель инструментов Standard, которая по умолчанию находится под стро­кой меню, — это одна из шести панелей инструментов, используемых в VBE (строка меню тоже считается панелью инструментов). Панели инструментов VBE работают, как и в Excel: вы можете задавать специальные настройки для панелей инструментов, перемещать их. ото­бражать другие панели инструментов и т.д. Для управления панелями инструментов VBE ис­пользуется команда VicwAToolbarsACustomic (Вид-Панели инструментов-Настройка).

Окно Project Explorer

В окне Project Explorer отображается диаграмма-дерево, состоящая из всех открытых в данный момент в Excel рабочих книг (включая дополнительные элементы и скрытые рабочие книги). Каждая рабочая книга известна как проект.

Если в редакторе Visual Basic окно Project Explorer не отображено, нажмите <Ctrl+R>. Чтобы скрыть его, щелкните на кнопке закрытия строки заголовка (или щелкните правой кнопкой мыши в любом месте окна и выберите Hide из контекстного меню).

Окно кода

Окно кода (которое иногда называют Module) содержит код VBA. Для каждого элемента проекта представлено собственное окно кода. Чтобы просмотреть код объекта, дважды щелкните мышью на этом объекте в окне Project Explorer. Например, чтобы просмотреть код объекта Лист1. дважды щелкните на элементе Лист1 в окне Project Explorer. Если вы не создавали для него VBA-кода. это открывшееся окно будет пустым. Существует еще один способ просмотреть код объекта — выделите этот объект в окне Project Explorer, а затем щелкните на кнопке View Code (Просмотр кода) на панели инстру­ментов вверху окна Project Explorer.

Окно Immediate

Окно Immediate предназначено для непосредственного выполнения операторов VBA. тестирования операторов и отладки кода. Это окно может отображаться и скрываться. Если окно Immediate в данный момент не отображается на экране, нажмите <Ctrl+G>. Чтобы за­крыть окно Immediate, щелкните на кнопке закрытия в его строке заголовка (или щелкните правой кнопкой мыши в любом месте окна и выберите Hide из контекстного меню).

Работа с Project Explorer

При работе в редакторе Visual Basic каждая рабочая книга Excel и открытые в данный момент надстройки рассматриваю гея как проекты. Проект можно считать коллекцией объектов, организо­ванных в виде иерархической структуры. Вы раскроете проект, если щелкнете на знаке "плюс" слева от названия проекта в окне Project Explorer. Проект сворачивается при щелчке на знаке "минус" слева от названия проекта. Кроме того, для разворачивания и сворачивания проекта можно использовать кнопку ToggleFoldcrs (Показать папки) на панели инструментов окна Project Explorer. При попытке развернуть проект, защищенный паролем, отображается окно ввода пароля.

Дерево каждого проекта в развернутом виде имеет как минимум один узел под названием Microsoft Excel Objects. В этом узле содержатся элементы каждого рабочего листа и лист диаграмм рабочей книги (рабочий лист считается объектом), а также объект под названием ЭтаКнига, представляющий объект Active Workbook. Если в проекте используются модули VBA, то в дереве отображается также узел Modules, в котором перечислены модули. Проект может также содержать узел Forms, содержащий объекты UserForm (пользовательские фор­мы, известные как пользовательские диалоговые окна). Если в проекте находятся модули классов, то в дереве отображается узел под названием Class Modules.

В Excel 2002 при добавлении ссылки на проект (с помощью команды ToolsAReferences) в дереве проекта появляется еще один узел: References. Каждая ссылка является отдельным объектом. Объекты, перечисленные в этом узле, не имеют окна кода.

Добавление нового модуля VBA

Чтобы добавить в проект новый модуль VBA, выделите название проекта в окне Project Explorer и выберите команду lnsert - Module (Вставка - Модуль). Также можно щелкнуть правой кнопкой мыши на названии проекта и выбрать команду Insert - Module в контекстном меню. При записи макроса Excel автоматически вставляет модуль VBA для хранения записанного кода.


Удаление модуля VBA

Чтобы удалить из проекта модуль VBA или модуль класса, выделите название модуля в окне Project Explorer и используйте команду File - Remove ххх (где ххх— название моду­ля). Кроме того, вы можете щелкнуть правой кнопкой мыши на названии модуля и выбрать команду Remove ххх из контекстного меню.

Экспорт и импорт объектов

За исключением объектов, перечисленных в узле References, каждый объект в проекте можно сохранить в отдельном файле. Сохранение отдельного объекта в проекте называется экспортом. Соответственно, вы можете также импортировать объекты в проект. Экспорт и импорт объектов полезен, если уже существующий объект (например, модуль VBA или фор­му UserForm) можно использовать в другом проекте.

Чтобы экспортировать объект, выберите его в окне Project Explorer и выполните команду File - Export File (или нажмите <Ctrl+E>). При этом отображается диалоговое окно, запра­шивающее имя файла. Обратите внимание, что сам объект остается в проекте (а экспортиру­ется только его копия). Если вы экспортируете объект UserForm, экспортируется также весь код, связанный с формой UserForm.

Чтобы импортировать файл в проект, выберите имя проекта в окне Project Explorer и вы­полните команду File - Import File. Появится диалоговое окно, в котором необходимо указать имя файла. Вы можете импортировать только те файлы, которые экспортированы с помощью команды File—Export File.

Если вы решили скопировать в другой проект модуль или объект UserForm, не обязательно использовать функции экспорта и импорта. Убедитесь, что оба проек­та открыты, затем активизируйте окно Project Explorer и перетащите необходимый объект из одного проекта в другой.


Работа с окнами кода

Каждому объекту в проекте соответствует свое окно кода. Такими объектами могут быть:

•  сама рабочая книга (ЭтаКнига в окне Project Explorer);

•  рабочий лист или лист диаграмм рабочей книги (например. Лист1 или Диаграмме 1 в окне Project);

•  модуль VBA;

•  модуль класса (специальный тип модуля, позволяющий создавать новые классы объектов);

•  форма UserForm.

Сохранение программы VBA

Как правило, окно кода содержит четыре типа кода.

•  Процедуры (процедуры Sub). Процедура — это набор инструкций, выполняющих оп­ределенное действие.

•  Процедуры функции. Функция — это набор инструкций, возвращающий значение или массив значений (концепция функции VB А подобна такой же функции Excel).

•  Процедуры свойств. Специальные процедуры, используемые в модулях классов.

Объяснение — это информация о переменной, предоставляемая VBA. Например, мож­но объявить тип данных для переменных, которые вы планируете использовать в коде.

В отдельном модуле VBA может храниться любое количество процедур, функций и объ­явлений. Способ организации модуля VBA зависит только от вашего желания. Некоторые предпочитают записывать весь код VBA приложения в одном модуле VBA; другие разделяют код на несколько разных модулей.

Несмотря на то, что предоставляются широкие возможности по определению места хранения кода VBA, существуют некоторые ограничения на его расположе­ние. Процедуры обработки событий должны содержаться в окне кода объекта, ко­торому соответствует это событие. Например, если вы пишете процедуру, которая выполняется при открытии рабочей книги, то эта процедура должна располагать­ся в окне кода для объекта ЭтаКнига и иметь специальное название.

 

Введение кода VBA

Для того чтобы выполнить одно из действий программным образом, необходимо напи­сать программу VBA в окне кода. Код VBA располагается в процедуре. Процедура состоит из операторов VBA. На данном этапе (для примера) остановимся только на одном типе окна ко­да: модуль VBA.

Вы можете добавить код в модуль VBA тремя способами.

•  Ввести код традиционным способом: с клавиатуры.

•  Использовать функцию записи макросов в Excel, чтобы записать действия и преобра­зовать их в код VBA.

•  Скопировать текст программы из другого модуля и вставить его в модуль, над кото­рым работаете.

Ввод кода вручную

Иногда самый простой путь является наилучшим. Непосредственное введение кода связа­но с использованием клавиатуры, т.е. вы вводите код программы с помощью клавиатуры. Клавиша <Таb> при этом используется с целью задать отступ в строках, которые логически принадлежат одной группе (например, условные операторы If и End If)- Это совершенно не обязательно, но помогает быстрее освоить программу, анализируя ее блочную структуру. Именно поэтому подобный подход в программировании называется '"хорошим стилем".

Ввод и редактирование кода в модуле VBA выполняется обычным образом. Вы можете выделять текст, копировать, вырезать его, а затем вставлять в другое место программы.

Отдельная инструкция в VBA может иметь произвольную длину. Однако, чтобы обеспе­чивать удобочитаемость кода, длинные инструкции лучше разбить на две или более строк. Для этого следует в конце строки ввести пробел и символ подчеркивания, а затем нажать <Enter> и продолжить инструкцию в следующей строке. Например, ниже приведен один опе­ратор VBA, разбитый на четыре строки.

MsgBox "Невозможно найти" & UCase(SHORTCUTMENUFILE) _

 & vbCrLf & vbCrLf & "Файл должен находиться в _

 " & ThisWorkbook.Path & vbCrLf & vbCrLf & _

"Возможно, требуется переустановить BudgetMan", v b С г i t i с a 1, APPNAME

Обратите внимание, что три последние строки этого оператора введены с отступом. Это необязательное условие, однако таким образом вы указываете что на самом деле эти четыре строки являются одним оператором.

Как и в Excel, в VBE есть несколько уровней отмены выполненных операций. По­этому, если вы по ошибке удалили инструкцию, можете несколько раз щелкнуть на кнопке Undo (Отменить) или нажать <Ctrl+Z>, и инструкция вновь появится в коде. После отмены операции можно щелкнуть на кнопке Redo (Вернуть), чтобы вернуть изменения, которые ранее отменены. Эта функция поможет исправить критически важные ошибки, поэтому не пренебрегайте ее использованием.

Использование функции записи макросов

Одним из способов создания кода модуля VBA является запись последовательности дей­ствий с помощью специальной функции записи макросов Excel.

В следующем примере показано, как записать макрос, изменяющий ориентацию страницы на альбомную. Если вы хотите получить его самостоятельно, то начните работу с пустой ра­бочей книги и выполните следующие действия.


Информация о работе «Организация документооборота с помощью "Visual Basic for Application"»
Раздел: Информатика, программирование
Количество знаков с пробелами: 216919
Количество таблиц: 8
Количество изображений: 10

Похожие работы

Скачать
200314
8
2

... , практически, не используются. Проблема информатизации Минторга может быть решена путем создания Автоматизированной Информационной системы Министерства Торговли РФ (АИС МТ РФ) в соответствии с настоящим Техническим предложением.   ГЛАВА 2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ КОМПЛЕКСА ЗАДАЧ "СИСТЕМА ДОКУМЕНТООБОРОТА УЧЕРЕЖДЕНИЯ”. функции поиска и архивации 2.1. Постановка задачи и её спецификация ...

Скачать
164313
27
1

... . В качестве средств разработки необходимо использование Borland C++ Builder 3.0 ClientServer, Microsoft Visual Basic for Applications. ГЛАВА 2. МАТЕМАТИЧЕСКОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ ДОКУМЕНТООБОРОТА МИНТОРГА РФ. РЕШЕНИЕ ЗАДАЧ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ 2.1 Постановка задачи и её спецификация 2.1.1. Понятие информационной безопасности применительно к системе документооборота Минторга РФ Под ...

Скачать
194189
21
0

... 1 - 13 ВВЕДЕНИЕ Представленный дипломный проект является частью комплексного проекта по разработке автоматизированной системы управления процессом формирования и реализации целевых программ в некоммерческой организации. И содержит предложения по решению задачи автоматизации учета и документооборота в рамках разрабатываемой темы. Обратим внимание на актуальность автоматизации именно общей ...

Скачать
162009
28
0

... заполнения этих регистров подсчитывают итоги и выводят конечные сальдо, на основе чего заполняют Главную Книгу и балансы. Методика и организация учета расчетов с персоналом по оплате труда в ОАО «Ивица» проводится на должном уровне, за исключением того, что учет трудовых ресурсов и средств на оплату труда не атоматизирован полностью. Поэтому для облегчения труда бухгалтера, а также ...

0 комментариев


Наверх