VBA в Excel
Программирование в Excel с помощью VBA.
Язык VBA позволяет писать макросы в Excel. Как это делать рассматривается ниже.
Application
Application – это объект, занимающий вершину иерархии объектов в Excel. Application – это и есть Excel. Вот примеры использования Application:
окно нормальных размеров
окно максимальных размеров
Workbooks
Workbooks – это коллекция рабочих книг, которые открыты. Каждая рабочая книга представлена объектом Workbook. Узнать сколько рабочих книг сейчас в коллекции можно так:
bookCount = Workbooks.Count
MsgBox («Opened books = » & bookCount)
Обатиться к нужной рабочей книге в коллекции Workbooks можно обратиться по его номеру или по имени:
здесь мы активизировали второй элемент коллекции Workbooks.
Другие примеры мы увидим ниже.
Workbook
Workbook – это рабочая книга.
Сохранить рабочую книгу:
И где же в этом примере рабочая книга Workbook? Здесь: Workbooks.Item(1), это выражение возвращает первый элемент коллекции Workbooks, а это и есть Workbook.
Закрыть рабочую книгу:
Sheets
Sheets – это все листы рабочей книги. Листы рабочей книги представлены двумя типами: рабочие листы – это обычные листы Excel и второй тип – это листы диаграмм. Те и другие и составляют коллекцию Sheets.
Charts
Charts – это только диаграммы рабочей книги.
Chart
Chart – это объект, представляющий одину диаграмму. Если диаграмма содержится в обычном рабочем листе, то она объектом Chart не является.
Worksheets
Worksheets – это только рабочие листы рабочей книги.
Добавим рабочий лист в коллекцию Worksheets:
Worksheet
Worksheet – это один лист рабочей книги Excel.
Все ячейки рабочего листа Worksheet:
Range. Работа с ячейками в Excel
Range – это одна ячейка листа или несколько ячеек. Этот объект рассмотрим подробнее. Установим кнопку на рабочий лист Excel. Откройте панель инструментов «Элементы управления» (правой кнопкой по свободному полю панели инструментов и выбираем из выпавшего меню). В этой панели выбираем кнопку и устанавливаем её на свободное место рабочего листа, в его правой части. Правой кнопкой мыши по нашей кнопке — > Свойства. Установите значение свойства Name – CommandButton, а свойства Caption — Range Test.
Получаем:
Закройте окно свойств кнопки, и кликаем по нашей кнопке правой кнопкой мыши, из выпавшего меню выбираем «Исходный текст». Открывается окно редактора VBA, оно называется Microsoft Visual Basic. В нём уже есть заготовка обработчика нажатия на кнопку CommandButton:
End Sub
Кстати, помотрите на эту заготовку, ключевое слово Sub говорит, что это процедура, а слово Private указывает, что эта процедура видна лишь в данном модуле.
Всё у нас готово для начала изучения работы с ячейками рабочего листа Excel.
Как задать активную ячейку?
Сделаем активной ячейку A2:A2:
Range(«A2:A2»).Activate
End Sub
Далее сохраняем, далее Debug — > Compile VBA Project. Если нет ошибок, то запускаем нашу программу: Run — > Run Sub/UserForm.
Получаем:
Выделим любую другую ячейу и нажимём на кнопку Range Test. Вновь выделится ячейка «А2». Это значит, что обработчик нажатия на кнопку работает исправно.
Как выделить ряд ячеек?
Выделим интервал ячеек «A2:D2». Вносим в нашу заготовку макроса новый код:
Range(«A2:D2»).Select
End Sub
Далее сохраняем, далее Debug — > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.
Получаем:
Как установить значение в ячейку?
Внесем число 123 в ячейку «A2:A2» для этого изменим код макроса так:
Range(«A2:A2»).Value = 123
End Sub
Далее сохраняем, далее Debug — > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.
Получаем:
Это результат работы.