- •Введение в vba Создание приложений на языке
- •Visual Basic for Applications (vba)
- •Создание приложений на языке visual basic for applications (vba)
- •Среда разработки программ
- •Интерфейс редактора vbe
- •Структура программного кода
- •Процедуры и функции
- •Область видимости процедур и функций
- •Переменные
- •Описание переменных
- •Массивы
- •Примеры функций для работы с массивами
- •Передача данных при вызове подпрограммы
- •Операторы, используемые в выражениях
- •Основные математические функции vba
- •Значение строк программы (пример 1)
- •Управляющие структуры
- •Примеры использования некоторых управляющих структур
- •Управляющая инструкция While - Wend
- •Управляющая инструкция Do − Loop
- •Управляющая инструкция For – Each - Next
Введение в vba Создание приложений на языке
Visual Basic for Applications (vba)
Visual Basic for Applications (VBA) — среда визуального объектно-ориентированного программирования для создания прикладных программ в среде Microsoft Office.
С помощью VBA:
создаются объекты управления графического интерфейса пользователя;
задаются и изменяются свойства объектов;
подключается соответствующий программный код.
Создание приложений на языке visual basic for applications (vba)
Visual Basic for Applications (VBA)- среда визуального объектно-ориентированного программирования для создания прикладных программ в средеMicrosoft Office.
С помощью VBA:
создаются объекты управления графического интерфейса пользователя;
задаются и изменяются свойства объектов;
подключается соответствующий программный код.
Методика программированияс использованием средств VBA сводится к следующему:
создание объектов управления и контроля (диалоговые окна, пиктограммы, меню);
разработка процедур, используемых при вызове объектов.
Прикладные программы на языке VBA оперируют со следующими понятиями:
объект управления и контроля;
свойство (параметр);
значение свойства;
событие;
метод доступа;
процедура
Основные классыVBAвExcel
-
Имя класса
Вид объектов в классе
Sheets
Все листы любых типов в рабочей книге
Workbooks
Все текущие открытые рабочие книги
Worksheets
Все листы (таблицы) в рабочей книге
Charts
Все листы диаграмм в рабочей книге
Range
Диапазон ячеек таблицы (строк, столбцов, несмежных ячеек)
Доступ к экземпляру класса осуществляется двумя способами:
по номеру экземпляра Workbooks(" Имя_книги"). Worksheets(2)
по имени экземпляра Workbooks("Имя_книги").Worksheets("Имя-листа")
Классы обладают следующими свойствами:
Count - определяет число экземпляров в классе;
Name - определяет имя экземпляра;
Parent- определяет имя объекта, включающего данный класс.ПРИМЕРЫ:
Фрагмент программного кода |
Результат |
Комментарий |
a = Worksheets(1).Name MsgBox (a) |
|
В переменную a заносим свойствоNameлиста с порядковым номером 1 и выводим значение этого свойства в окне. Выводится имя первого листа открытой книги. |
a = Worksheets.Count MsgBox (a) |
|
В переменную a заносим свойствоCount рабочих листов открытой книги и выводим значение этого свойства в окне. Выводится количество листов в открытой книге. |
a = Worksheets.Parent.Name MsgBox (a) |
|
В переменную a заносим свойствоParent.Name рабочих листов открытой книги и выводим значение этого свойства в окне. Выводится имя книги, в которой находятся данные листы. |
Worksheets(1).Name = "labVBA" MsgBox (Worksheets(1).Name) |
|
В свойство Nameлиста с порядковым номером 1 заносим новое имяlabVBAи выводим значение этого свойства в окне. |
Методы
Методы также как и свойства, указываются через точку после имени объекта.
У методов могут быть аргументы, которые указываются через пробел после имени метода. Между собой аргументы разделяются запятой.
Для добавления и удаления экземпляров класса используют методы AddиDelete.
ПРИМЕРЫ:
Фрагмент программного кода |
Комментарий |
Workbooks(“mybook.xls”).Close |
Вызывается метод Close. Закрыть книгуmybook.xls |
Workbooks(“mybook.xls”).Close saveChanges:= True |
Вызывается метод Close (закрыть книгу)mybook.xlscодним аргументом, передаваемым по имени |
Worksheets(1).Protect |
Лист 1 становится защищенным от записи |
Доступ к отдельным ячейкам таблицы:
Cells- в качестве аргументов указываются два целых числа, определяющих место положения отдельной ячейки таблицы:
Cells (число1, число2)
Примеры:Cells(1,2).Value=5- присваивает ячейке В1 текущего рабочего листа активной рабочей книги значение 5;
Cells(2,1).Formula="=SUM(B1:B5)" - записывает в ячейку А2 формулу суммирования значений в ячейках В1:В5;
Range - работа с прямоугольной областью ячеек:
Примеры:Worksheets(1).Range("A1:B2").Value = 10- присваивание блоку ячеек постоянного значения, равного 10;
Range("D15").Value = "Test"- присваивание ячейке текущего рабочего листа активной рабочей книги значенияTest;
Range("Criteria").ClearContents- очистка содержимогоименованногоблока ячеек текущего рабочего листа активной рабочей книги
(Чтобы именовать группу ячеек, их нужно выделить и выполнить команду Вставка / Имя / Присвоить)
Можно использовать форму записи Range(Cells(1, 1), Cells(2, 2)).Value = 4
Offset -в качестве аргументов передаются два числа, указывающие местоположение ячейки относительно верхнего левого угла указанной области:
Пример:Selection.Offset(2,5).Select - относительно текущей ячейки (например, А1) происходит смещение на 2 строки и 5 столбцов (в ячейку F3).
Union- метод множественного выделения областей ячеек:
Uniоn(область1, область2)
Каждую область формируют с помощью метода Range
Пример:
Union(Range(Cells(1, 1), Cells(2, 2)), Range(Cells(5, 5), Cells(7, 7))).Select
- выделяет области ячеек: А1:B2,E5:G7
Для написания программного кода используется редактор Visual Basic Editor (VBE). Начало работы с редактором VBE: Microsoft Excel /Сервис/ Макрос/ Редактор Visual Basic.
Создание программного модуля в составе рабочей книги: Insert / Module (рис. 15).
При этом создается новый рабочий лист со стандартным именем Module и порядковым номером программного модуля в рабочей книге.