If fBackColor = False Then
lngCurColor = rgCells.Cells(i).Font.Color
Else
lngCurColor = rgCells.Cells(i).Interior.Color
End If
' Назначения цвета первой ячейки первой кнопке
cmbColor1.BackColor = lngCurColor
cmbColor1.Visible = True
' Просмотр остальных ячеек и при нахождении новых цветов _
отображение кнопок, окрашенных в эти цвета
intColorNumber = 2
For i = 2 To rgCells.Cells.Count
fColorPresented = False
' Получение цвета i-й ячейки
If fBackColor = False Then
lngCurColor = rgCells.Cells(i).Font.Color
Else
lngCurColor = rgCells.Cells(i).Interior.Color
End If
' Проверка, отображается ли уже кнопка с таким цветом
For Each ctrl In Me.Controls
If Left(ctrl.Name, 8) = «cmbColor» And _
ctrl.Visible = True Then
If lngCurColor = ctrl.BackColor Then
' Кнопка с цветом i-й ячейки уже отображается
fColorPresented = True
Exit For
End If
End If
Next ctrl
If Not fColorPresented Then
' Кнопки с цветом lngCurColor еще нет – покажем ее
intColorNumber = intColorNumber + 1
strCtrl = «cmbColor» & intColorNumber
Me.Controls(strCtrl).BackColor = lngCurColor
Me.Controls(strCtrl).Visible = True
End If
Next i
Exit Sub
ErrRange:
' Обработка ошибок при работе с диапазоном
If txtRange.Text = "" Then
MsgBox «Введите адрес диапазона суммирования», _
vbCritical, «Внимание!»
Else
MsgBox «Введен некорректный адрес диапазона суммирования», _
vbCritical, «Ошибка!»
End If
' Установка курсора в поле ввода диапазона
txtRange.SetFocus
End Sub
После помещения кода, представленного в листинге 5.6, в модуль формы необходимо сформировать ее внешний вид, как показано на рис. 5.10.
Рис. 5.10. Пользовательская форма
При работе с формой необходимо выполнить следующие действия (для присвоения значений свойствам используется панель VBA Properties (Свойства)):
• форме присвоить имя f rmColorCalc;
• двенадцати кнопкам (в правой верхней части формы) присвоить названия от cmbColorl до cmbColorl2;
• текстовому полю для указания диапазона суммирования присвоить следующее имя: txtRange;
• текстовому полю для указания адреса ячейки с результатом присвоить имя txtResCell;
• раскрывающемуся списку Другой присвоить имя cboOtherColor, а его свойству ColumnCount – значение 2;
• кнопке, расположенной справа от этого списка, присвоить имя cmbApplyColor;
• раскрывающемуся списку Тип вычислений присвоить имя cboCalcTypes, а его свойству ColumnCount – значение 2;
• флажку Проверять присвоить имя chkVarif у;
• элементу управления ToggleButton с надписью Шрифт присвоить имя tglType.
После произведенных действий можно легко заметить, что макросы в модуле формы – это обработчики событий соответствующих элементов управления.
Теперь создадим кнопку запуска программы на панели быстрого доступа, для чего выполним щелчок правой кнопкой мыши на этой панели и выберем команду контекстного меню Настройка панели быстрого доступа. В появившемся диалоговом окне (окно настройки Excel в режиме Настройка) в раскрывающемся списке Выбрать команды из выберем Макросы. При этом среди доступных команд дожна быть показана CalcColors, которую и нужно добавить на панель. На этом процесс создания программы можно считать завершенным.
Для запуска созданной программы нажмем кнопку, которой назначен макрос CalcColors – в результате откроется окно, соответствующее пользовательской форме, которая приведена на рис. 5.10. Предварительно следует выделить обрабатываемый диапазон – в этом случае поле Диапазон суммирования будет заполнено автоматически. В противном случае в данном поле следует с клавиатуры ввести требуемый диапазон (например, А5: С15). С помощью параметра Признак суммирования определяется, какой цвет шрифта или заливки будет применяться в качестве критерия отбора. При этом справа в поле Выберите цвет отображается перечень цветов, входящих в обрабатываемый диапазон; для выбора достаточно щелкнуть кнопкой мыши на кнопке соответствующего цвета. В расположенном ниже поле Другой из раскрывающегося списка можно выбрать какой-либо другой цвет. Список включает в себя следующие варианты: Красный, Оранжевый, Желтый, Зеленый, Голубой, Синий, Фиолетовый, Белый, Черный. Справа от поля Другой расположена кнопка, при нажатии которой выбранный цвет будет применен.
В поле Адрес ячейки ввода формулы следует указать адрес ячейки, в которой будет показан результат расчетов.
Если установлен флажок Проверять, то будет включен «обратный фильтр». Иначе говоря, при установленном данном флажке в расчет принимаются те ячейки диапазона, которые не соответствуют указанному цвету. Например, если выбран красный цвет, то ячейки с красным шрифтом (заливкой) не будут приниматься в расчет.
Читать дальше
Конец ознакомительного отрывка
Купить книгу