VBA в Excel



Поддержка JavaScript отключена

SBP-Program
На главную — > VBA &nbsp

&nbsp

VBA в Excel

Программирование в Excel с помощью VBA.

Язык VBA позволяет писать макросы в Excel. Как это делать рассматривается ниже.

Application — это объект, занимающий вершину иерархии объектов в Excel. Application – это и есть Excel. Вот примеры использования Application:

окно нормальных размеров

Application.WindowState = xlNormal

окно максимальных размеров

Application.WindowState = xlMaximized

Workbooks — это коллекция рабочих книг, которые открыты. Каждая рабочая книга представлена объектом Workbook. Узнать сколько рабочих книг сейчас в коллекции можно так:

Dim bookCount As Integer
bookCount = Workbooks.Count
MsgBox («Opened books = » & bookCount)

Обатиться к нужной рабочей книге в коллекции Workbooks можно обратиться по его номеру или по имени:

Workbooks.Item(2).Activate

здесь мы активизировали второй элемент коллекции Workbooks.

Другие примеры мы увидим ниже.

Workbook — это рабочая книга.

Сохранить рабочую книгу:

Workbooks.Item(1).Save

И где же в этом примере рабочая книга Workbook? Здесь: Workbooks.Item(1), это выражение возвращает первый элемент коллекции Workbooks, а это и есть Workbook.

Закрыть рабочую книгу:

Workbooks.Item(1).Close

Sheets — это все листы рабочей книги. Листы рабочей книги представлены двумя типами: рабочие листы — это обычные листы Excel и второй тип — это листы диаграмм. Те и другие и составляют коллекцию Sheets.

Charts — это только диаграммы рабочей книги.

Chart — это объект, представляющий одину диаграмму. Если диаграмма содержится в обычном рабочем листе, то она объектом Chart не является.

Worksheets — это только рабочие листы рабочей книги.

Добавим рабочий лист в коллекцию Worksheets:

Worksheets.Add

Worksheet — это один лист рабочей книги Excel.

Все ячейки рабочего листа Worksheet:

Worksheets(«Лист1»).Cells

Range — это одна ячейка листа или несколько ячеек. Этот объект рассмотрим подробнее. Установим кнопку на рабочий лист Excel. Откройте панель инструментов «Элементы управления» (правой кнопкой по свободному полю панели инструментов и выбираем из выпавшего меню). В этой панели выбираем кнопку и устанавливаем её на свободное место рабочего листа, в его правой части. Правой кнопкой мыши по нашей кнопке — > Свойства. Установите значение свойства Name — CommandButton, а свойства Caption — Range Test.

Получаем:

Java

Закройте окно свойств кнопки, и кликаем по нашей кнопке правой кнопкой мыши, из выпавшего меню выбираем «Исходный текст». Открывается окно редактора VBA, оно называется Microsoft Visual Basic. В нём уже есть заготовка обработчика нажатия на кнопку CommandButton:

Private Sub CommandButton_Click()

End Sub

Кстати, помотрите на эту заготовку, ключевое слово Sub говорит, что это процедура, а слово Private указывает, что эта процедура видна лишь в данном модуле.

Всё у нас готово для начала изучения работы с ячейками рабочего листа Excel.

Сделаем активной ячейку A2:A2:

Private Sub CommandButton_Click()
&nbsp&nbsp&nbsp Range(«A2:A2»).Activate
End Sub

Далее сохраняем, далее Debug — > Compile VBA Project. Если нет ошибок, то запускаем нашу программу: Run — > Run Sub/UserForm.

Получаем:

Java

Выделим любую другую ячейу и нажимём на кнопку Range Test. Вновь выделится ячейка «А2». Это значит, что обработчик нажатия на кнопку работает исправно.

Выделим интервал ячеек «A2:D2». Вносим в нашу заготовку макроса новый код:

Private Sub CommandButton_Click()
&nbsp&nbsp&nbsp Range(«A2:D2»).Select
End Sub

Далее сохраняем, далее Debug — > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.

Получаем:

Java

Внесем число 123 в ячейку «A2:A2» для этого изменим код макроса так:

Private Sub CommandButton_Click()
&nbsp&nbsp&nbsp Range(«A2:A2»).Value = 123
End Sub

Далее сохраняем, далее Debug — > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.

Получаем:

Java

Программирование

&nbsp
&nbsp
&nbsp