Выбор позиции из списка на листе Excel с помощью VBA. Использование галочки в ячейке Excel в качестве переключателя. Пример кода VBA.
Выбор позиции из списка
В Excel можно реализовать удобный механизм выбора одной позиции из списка с помощью вставки галочки в ячейку. Такая визуальная метка может быть использована для создания простых интерфейсов без применения форм или дополнительных элементов управления. Один из примеров — выбор пункта из списка, когда пользователь может установить галочку только рядом с одной строкой.
Предположим, у нас есть список из пяти элементов в диапазоне A1:A5
. При щелчке по любой ячейке из этого диапазона, в неё вставляется галочка, а из остальных ячеек она удаляется. Это позволяет реализовать поведение, аналогичное переключателю — только один элемент списка может быть выбран одновременно.
Код VBA для реализации
Приведённый ниже код вставляется в модуль конкретного листа (например, "Лист1"
):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Проверяем, что выбрана одна ячейка If Target.Cells.Count > 1 Then Exit Sub 'Задаем диапазон для вставки галочки Dim rng As Range Set rng = [A1:A5] 'Проверяем, входит ли выбранная ячейка в указанный диапазон If Not Intersect(Target, rng) Is Nothing Then rng.ClearContents 'Очищаем диапазон от старой галочки Target.Value = ChrW(10004) 'Вставляем галочку в выбранную ячейку End If End Sub |
Как это работает
- Обработчик события
Worksheet_SelectionChange
реагирует на выбор ячейки пользователем. - Проверка количества ячеек исключает множественный выбор.
- Определяется диапазон
A1:A5
, в котором допустим выбор. - При выборе одной из ячеек:
- Все ячейки в диапазоне очищаются.
- В выбранную ячейку вставляется символ галочки.
Технические детали
- Код должен находиться в модуле листа, а не в обычном модуле.
- Символ галочки вставляется с помощью функции
ChrW(10004)
, которая возвращает Unicode-символ галочки (✓). - Работоспособность проверена в Microsoft Excel 2016.
Возможные применения
- Выбор одного варианта из списка.
- Простая реализация опросов или голосований в Excel.
- Упрощённые интерфейсы, когда не требуется использование форм.