End Sub

Обработка электронных таблиц в среде VBA

Глава 18. Решение оптимизационных задач

End Sub

Dim y As Single

a = Val(InputBox(" Введите а "))

b = Val(InputBox(" Введите b "))

c = Val(InputBox(" Введите c "))

y = max(a, b) + max(a + b, c) ' 2 обращения к подпрограмме с именем max

MsgBox " y=" & y

Во избежания ошибок в основной программе переменные описывать отдельными операторами Dim

В Excel можно вставлять элементы управления (кнопки, списки и т.п.) непосредственно в электронную таблицу. Для вставки элементов управления в ЭТ необходимо выполнить следующие действия:

1. Открыть панель инструментов “Visual Basic”, выполнив команды меню Вид, Панели инструментов, Visual Basic(рис. 18.1).

1 2 3 4

 
 
Рис. 18.1. Панель инструментов Visual Basic.  


Кнопки слева направо:1- вызов редактора VBA, 2- панели элементов управления, 3 - выход из режима конструктора, 4 - вызов редактора сценариев.

2. Открыть панель элементов управления, щелкнув в панели инструментов Visual Basic по кнопке “Элементы управления”.

3. Выбрать в панели элементов управления нужный элемент, щелкнув по нему мышкой и переведя курсор в нужное место электронной таблицы “нарисовать” элемент управления мышкой при нажатой левой кнопке. При этом активизируется Режим конструктора.

В контекстном меню элемента управления (например, кнопки CommandButton)можно выполнить команду “Свойства”, которая откроет окно свойств данного элемента. Дважды щелкнув по созданному элементу управления левой кнопкой мыши можно открыть редактор кода Visual Basic для создания процедур обработки событий. Например, в процедуре можно записать код, по которому в ячейку В1 будет записано число 24.6. Так как ячейка принадлежат к рабочему листу 1, а тот в свою очередь к рабочей книге 2, то в общем случае процедура обработки события нажатия кнопки будет иметь вид:

Private Sub CommandButton1_Click()

Workbooks("Книга2").Worksheets("Лист1").Range("B1").Value = 24.6

где Workbooks("Книга2")- обращение к рабочей книге с именем Книга2

WorkSheets("Лист1") -обращение к рабочему листу с именем Лист1

Range("B1")– обращение к ячейке В1

Value– свойство ячейки

Если активными являются рабочая книга2 и рабочий лист1, то процедура обработки события нажатия кнопки упрощается:

Private Sub CommandButton1_Click()

Range("B1") = 24.6