Теперь в ячейке B2 нужно создать две любые автофигуры (перед этим ячейку В2 следует существенно увеличить, сделав ее размером примерно с четверть экрана, чтобы было место для вращения автофигур).
Примечание
Адрес ячейки можно устанавливать любой, но для этого необходимо внести соответствующие изменения в код макроса.
Теперь, запустив созданный макрос, полюбуйтесь результатом своей работы – автофигуры будут вращаться и одновременно перемещаться в пределах указанной ячейки. При желании можно раскрасить автофигуры в разные цвета и установить какой-нибудь фон для ячейки.
Вызов таблицы цветов
При необходимости можно вывести на экран таблицу цветов и соответствующих значений свойства Colorlndex (данное свойство задает индексированный цвет заливки в соответствии с палитрой цветов). Для этого создадим и запустим следующий макрос (листинг 3.77).
Sub ShowColorTable()
Dim intColor As Integer
' Формирование заголовка таблицы
Range(«A1»).Value = «Цвет»
Range(«B1»).Value = «Значение свойства ColorIndex»
' Вывод таблицы
Range(«A2»).Select
For intColor = 1 To 56
' Окрашиваем ячейку столбца "A" в текущий цвет
With ActiveCell.Interior
.ColorIndex = intColor
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
' В ячейку столбца "B" вносим индекс текущего цвета
ActiveCell.Offset(0, 1).Value = intColor
' Переходим на следующую строку
ActiveCell.Offset(1, 0).Activate
Next
' Покажем ячейку «A1» (начало таблицы)
Range(«A1»).Select
ActiveWindow.ScrollRow = 1
End Sub
В результате выполнения макроса откроется таблица, изображенная на рис. 3.24.
Рис. 3.24. Таблица цветов
В столбце А данной таблицы отображается перечень цветов, а в столбце В – соответствующие им значения свойства Colorlndex. На рисунке показан лишь фрагмент таблицы, поскольку полностью она состоит из 56 строк.
Создание калькулятора
Используя средства языка VBA, можно быстро создать простейший калькулятор, предназначенный для вычисления значений арифметических выражений. Пример макроса, который позволяет это сделать, приведен в листинге 3.78.
Sub SimpleCalculator()
Dim strExpr As String
' Ввод выражения
strExpr = InputBox(«Что будем считать?»)
' Подсчет и вывод результата
MsgBox strExpr & " = " & Application.Evaluate(strExpr)
End Sub
После выполнения данного макроса появится окно, изображенное на рис. 3.25.
Рис. 3.25. Калькулятор
В данном окне с клавиатуры следует ввести выражение, значение которого необходимо вычислить, и нажать кнопку ОК либо клавишу Enter. Результат расчета будет показан в информационном окне (рис. 3.26).
Рис. 3.26. Результат расчета
Если строку макроса strExpr = InputBox («Что будем считать?») написать в виде, например, strExpr = InputBox («Быстрое вычисление»), то окно ввода выражения будет выглядеть, как на рис. 3.27.
Рис. 3.27. Замена текста
Окно результата расчета при этом не изменится (рис. 3.28).
Рис. 3.28. Окно результата расчета
Еще о создании пользовательских меню
Мы уже рассматривали некоторые способы создания пользовательского меню (см. выше раздел «Формирование пользовательского меню»). Предлагаемый же в данном разделе пример является более масштабным, потому что в нем можно увидеть команды созданного меню «в работе» (то есть при выполнении команды на экране отобразится определенный результат).
Сначала рассмотрим создание пользовательского меню, которое полностью состоит из пользовательских команд. После этого реализуем меню, в котором наряду с пользовательскими будут и штатные средства Excel.
Меню с пользовательскими командами
Для реализации данного трюка нам потребуется создать два кода. Один из них будет помещен в модуль ЭтаКнига, а другой – в стандартный модуль. Первый код выглядит следующим образом (листинг 3.79).