Введение в 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 также включает конструкции современных языков программирования (в том числе массивы, циклы и т.д.).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|