
Задание 8
a) Используя VBA, написать функцию пользователя, вычисляющую значение функции из Задания 1.
b) Используя VBA, написать процедуру, осуществляющую форматирование выделенного диапазона ячеек произвольным образом (границы, заливка, шрифт, выравнивание текста). Создать собственную панель инструментов с единственной кнопкой, запускающей эту процедуру.
Задание 8а
В редакторе VBA создадим новый модуль. В нем запишем функцию пользователя при помощи операторов IF…ELSE и стандартных функций языка Visual Basic. Функция с именем MyFunc1() будет принимать одно вещественное значение, и возвращать результат вещественного типа.
Рис. 36
Затем в ячейках A2:A12 про табулируем X на интервале (0,1) с шагом 0.1. В ячейке B2 формула:
=MyFunc1(A2)
В результате получим:
Рис. 37
Задание 8b
В редакторе VBA создадим новый модуль. В нем запишем процедуру Mysub1() которая выбранному диапазону ячеек будет присваивать новые параметры форматирования.
Рис. 38
Для создания новой панели инструментов проделаем следующие шаги: «Вид» => «панели инструментов» => «настройка», далее во вкладке «Панели инструментов» выбрать кнопку «создать» и выбрать её название. После этого во вкладке «команды» в списке «категории» выбрать «макросы», а в списке «команды» – «настраиваемая кнопка», которую необходимо перетянуть на ново созданную панель. Далее необходимо нажать «изменить выделенный объект» и «назначить макрос». В списке макросов выбрать необходимый. Панель инструментов готова к работе.
Рис. 39
Также при помощи панели инструментов «форма» можно создать кнопку на листе, которая будет работать аналогичным образом.
Рис. 40
Приложения
Приложение 1:
Function MyFunc1(x As Double) As Double
If x <= 0.5 Then MyFunc1 = Sin(x) + Abs(Cos(x))
If x > 0.5 And x < 0.7 Then MyFunc1 = Tan(x ^ 2 + Abs(Tan(x)))
If x >= 0.7 Then MyFunc1 = (Cos(x)) ^ 5
End Function
Приложение 2:
Sub Mysub1()
Dim oCell As Range
For Each oCell In Selection.Cells
oCell.Interior.Color = RGB(222, 227, 14)
oCell.BorderAround LineStyle:=xlSingle, Color:=RGB(0, 0, 0)
oCell.Font.Name = "Times New Roman"
oCell.Font.Color = RGB(129, 19, 41)
oCell.Font.Bold = True
oCell.HorizontalAlignment = xlCenter
Next oCell
End Sub
Список литературы
http://kit.znu.edu.ua/eMeth/MSOffice/Excel/main.htm
http://ru.wikibooks.org/wiki/Microsoft_Excel
Excel 2003. Краткий справочник Джон Уокенбах, Колин Банфилд
Другие интернет источники.
Вариант 1