Программирование в пакете MS Excel на языке VBA. Элемент управления CommandButton

Файл Excel представляет собой VBA Project, который состоит из рабочей книги и ее листов. Язык VBA является объектно-ориентированным языком программирования, использует понятие объектов (рабочая книга (Workbooks), листы (Worksheets), ячейки (Cells), область (Range), элементы управления: окна, списки, кнопки, переключатели, линейки прокрутки.

 

СОЗДАНИЕ ПРОЕКТА ПРОГРАММЫ НА VBA

Создание проекта программы на VBA состоит из двух взаимосвязанных процессов:

· размещение элементов управления (кнопки, текстовые окна, списки и др.) на рабочем листе Excel или на форме (формах) пользователя;

· написание текста процедуры для этих элементов в соответствии с алгоритмом решения задачи.

Чтобы разместить элементы управления на рабочем листе в необходимо придерживаться следующего порядка действия.:

· Вначале надо поместить на ленту вкладку Разработчик. Для этого надо нажать кнопку Оffice в левом верхнем углу приложения,

· в появившемся окне нажать кнопку Параметры Excel;

· в следующем появившемся окне поставить галочку у надписи Показывать вкладку «Разработчик» на ленте:

Для размещения элементов управления на рабочем листе необходимо:

· на вкладке Разработчик в группе инструментов Элементы управления выбрать кнопку Вставить и далее Элементы ActiveX

· активизировать на панели нужный элемент

· поместить его в соответствующем месте рабочего листа.

 

ОСНОВНЫЕ ПОНЯТИЯ VBA:

ä Объекты

ä Свойства

ä Методы

ä События

ä Процедура обработки события

Объектом в VBA считается некоторый элемент, на который можно воздействовать некоторым образом, изменяя его состояние.

Полный перечень различных типов объектов вы можете увидеть обретясь к справочной системе Microsoft Excel, найдя Object на вкладке Содержание.

Основными компонентами программы на VBA являются процедуры.

Процедура – это самостоятельная программная единица VBA, включающая операторы описания ее локальных данных и исполняемые операторы.

Каждый объект можно связать с набором процедур, исполняемых в строго определенные моменты.

Выполнение процедуры происходит тогда, когда происходит, то или иное событие, например, щелчок (Click) по командной кнопке, для которой записана конкретная процедура.

Поэтому ее называют процедура обработки события. Она записывается на языке VBA и заключается между ключевыми словами (процедурными скобками) Sub…End Sub.

Событиями также считаются, DblClick (двойной щелчок), или Resize (изменение размера) – оно возникает при изменении размера окна формы, KeyPress (нажатие клавиши) - оно возникает при нажатии какой-либо клавиши, Load (загрузка в память ).

Например,

Private Sub TextBox1_DblClick()

End Sub

Private Sub TextBox1_Click()

End Sub

процедуры, записанные между данными процедурными скобками, будут выполняться при двойном и одинарном щелчке по текстовому окну:

Состояние любого объекта (его цвет, название, размер, видимость и т. д.) можно изменять с помощью свойств, открыв окно свойств (кнопка Свойства в группе Элементы управления).

 

 

В левом столбце написаны названия свойств выделенного объекта, в правом – их значения. Для изменения надписи на кнопке используется свойство Caption, для изменения шрифта надписи – Font, для изменения цвета букв – ForeColor, для изменения цвета кнопки – BackColor, закрыть окно свойств. Свойство Name задается только латинскими буквами, стандартное значение CommandButton1 лучше не менять.

 

 

Свойства объектов можно задавать не только в окне свойств, но и программным путем. Для этого используют следующий синтаксис:

объект.свойство = значение

где данный объект связывается с описывающим его «состояние» свойством через точку без пробелов. Например, можно задать заголовок окна (свойство Caption) формы с именем UserForm1 в программном коде следующим образом (при написании программного кода регистр букв не играет роли):

UserForm1.Caption = “Список сотрудников”

В текстовое окно внести следующее имя отчество:

TextBox1.Text=”Иванова Светлана”

Изменить заголовок командной кнопки:

CommandButton1. Caption=”Задача”

Изменить размер шрифта на командной кнопке:

UserForm1.Caption.Font.Size = 14

Сделать текстовое окно видимым, а метку – невидимым:

TextBox1.Visible=True

Label1.Visible= False

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

Переменная = объект.свойство

Например, можно узнать значения свойства Text текстового поля:

Tl = TextBox1.Text

Состояние любого объекта можно изменять не только с помощью свойств, но и с помощью методов «воздействия», которые можно к нему применять.

Методы – это действия, которые требуется выполнить. Формат записи операторов с методом зависит от того, сколько параметров принимает процедура метода и возвращает ли метод значение. Если метод не требует параметров, используется следующий синтаксис:

объект.метод

Например, чтобы показать Фому используют метод Show, чтобы спрятать метод Hide:

UserForm1. Show

UserForm1. Hide

Если метод требует параметры, то они перечисляются через запятую:

объект.метод аргументы

Например,

ComboBox1. AddItem “Visual Basic”

метод AddItem добавляет в комбинированный список ComboBox текст Visual Basic.

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

Для записи процедуры, которая связывается с некоторым объектом, необходимо:

1. Дважды щелкнуть по объекту, для которого записывается процедура. Вы попадете в редактор VBA. Внутри процедурных скобок

Sub CommandButton1_Click()

End Sub

записать программный код.

Например:

Private Sub CommandButton1_Click()

MsgBox ("Привет")

End Sub

 

Функция MsgBox() – активизирует диалоговое окно, с сообщением, записанным в кавычках. Для закрытия диалогового окна нужно нажать ОК.

Для запуска программы, необходимо

• перейти в окно рабочей книги Excel (или закрыть окно редактора VBA);

• выйти из режима конструирования, отжав кнопку Режим конструктора на вкладке Разработчик;

• нажать на кнопку, для которой была написана процедура обработки события и, просмотреть результат.