Содержание
- Применение инструментов заполнения
- Способ 1: встроенный объект для ввода данных Excel
- Способ 2: создание пользовательской формы
- Вопросы и ответы
Для облегчения ввода данных в таблицу в Excel можно воспользоваться специальными формами, которые помогут ускорить процесс заполнения табличного диапазона информацией. В Экселе имеется встроенный инструмент позволяющий производить заполнение подобным методом. Также пользователь может создать собственный вариант формы, которая будет максимально адаптирована под его потребности, применив для этого макрос. Давайте рассмотрим различные варианты использования этих полезных инструментов заполнения в Excel.
Применение инструментов заполнения
Форма заполнения представляет собой объект с полями, наименования которых соответствуют названиям колонок столбцов заполняемой таблицы. В эти поля нужно вводить данные и они тут же будут добавляться новой строкой в табличный диапазон. Форма может выступать как в виде отдельного встроенного инструмента Excel, так и располагаться непосредственно на листе в виде его диапазона, если она создана самим пользователем.
Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.
Способ 1: встроенный объект для ввода данных Excel
Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.
- Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
- В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.
В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».
- После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
- Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
- Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
- Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
- После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
- Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
- Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
- После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
- Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
- Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
- Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
- Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
- При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
- Как видим, изменение сразу произошло и в табличной области.
- Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
- Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
- Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
- После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.
Способ 2: создание пользовательской формы
Кроме того, с помощью макроса и ряда других инструментов существует возможность создать собственную пользовательскую форму для заполнения табличной области. Она будет создаваться прямо на листе, и представлять собой её диапазон. С помощью данного инструмента пользователь сам сможет реализовать те возможности, которые считает нужными. По функционалу он практически ни в чем не будет уступать встроенному аналогу Excel, а кое в чем, возможно, превосходить его. Единственный недостаток состоит в том, что для каждого табличного массива придется составлять отдельную форму, а не применять один и тот же шаблон, как это возможно при использовании стандартного варианта.
- Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
- Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
- Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
- Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».
- Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
- Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.
Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.
- После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
- Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
- Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
- Из раскрывшихся вариантов выбираем позицию «Список».
- Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
- Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
- Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
- Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
- Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
- Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
- Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
- А ячейке с ценой – «Price».
- После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
- После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
- В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
- Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
- После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
- Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
- После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.
В поле «Name» тоже можно заменить название на более удобное. Но это не обязательно. При этом допускается использование пробелов, кириллицы и любых других знаков. В отличие от предыдущего параметра, который задает наименование листа для программы, данный параметр присваивает название листу, видимое пользователю на панели ярлыков.
Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.
- Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
- Теперь для конкретно нашего примера нужно записать в поле следующий код:
Sub DataEntryForm()
Dim nextRow As Long
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
With Producty
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
nextRow = nextRow - 1
End If
Producty.Range("Name").Copy
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
.Range("A2").Formula = "=IF(ISBLANK(B2), """", COUNTA($B$2:B2))"
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
.Range("Diapason").ClearContents
End With
End Sub
Но этот код не универсальный, то есть, он в неизменном виде подходит только для нашего случая. Если вы хотите его приспособить под свои потребности, то его следует соответственно модифицировать. Чтобы вы смогли сделать это самостоятельно, давайте разберем, из чего данный код состоит, что в нем следует заменить, а что менять не нужно.
Итак, первая строка:
Sub DataEntryForm()
«DataEntryForm» — это название самого макроса. Вы можете оставить его как есть, а можете заменить на любое другое, которое соответствует общим правилам создания наименований макросов (отсутствие пробелов, использование только букв латинского алфавита и т.д.). Изменение наименования ни на что не повлияет.
Везде, где встречается в коде слово «Producty» вы должны его заменить на то наименование, которое ранее присвоили для своего листа в поле «(Name)» области «Properties» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.
Теперь рассмотрим такую строку:
nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row
Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.
Далее рассмотрим строку
If .Range("A2").Value = "" And .Range("B2").Value = "" Then
«A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.
Переходим к строке
Producty.Range("Name").Copy
В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.
В строках
.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues
.Cells(nextRow, 3).Value = Producty.Range("Volum").Value
.Cells(nextRow, 4).Value = Producty.Range("Price").Value
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
наименования «Volum» и «Price» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.
В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.
В строке производится умножение количества товара на его цену:
.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value
Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.
В этом выражении выполняется автоматическая нумерация строк:
If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If
Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты «A» — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.
В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:
.Range("Diapason").ClearContents
Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.
Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.
После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.
- После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
- Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
- После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
- После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.
- Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
- Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
- Повторно заполняем форму и жмем на кнопку «Добавить».
- Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.
Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel
В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.
Excel 2021 Excel 2019 Excel 2016 Excel 2013 Office для бизнеса Excel 2010 Excel 2007 Еще…Меньше
Сводка
Microsoft Excel содержит несколько элементов управления для листов диалогов, которые удобно использовать для выбора элементов из списка. Примерами элементов управления могут быть списки, поля со списком, счетчики и полосы прокрутки.
Дополнительные сведения об элементе управления формы в Excel см. в ActiveX формах и формах.
Дополнительные сведения
Ниже покажем, как использовать списки, поля со списком, счетчики и полосы прокрутки. В примерах используются те же список, ссылка на ячейку и функция Индекс.
Включить вкладку «Разработчик»
Чтобы использовать элементы управления формы Excel 2010 и более поздних версий, необходимо включить вкладку Разработчик. Для этого выполните указанные ниже действия.
-
Откройте вкладку Файл и выберите команду Параметры.
-
Нажмите кнопку Настроить ленту в области слева.
-
В правой области Основные вкладки выберите разработчик и нажмите кнопку ОК.
Чтобы использовать элементы управления формы Excel 2007, необходимо включить вкладку Разработчик. Для этого выполните указанные ниже действия.
-
Нажмите кнопку Microsoft Office, а затем — Параметры Excel.
-
Щелкните Популярные,выберите вкладкуПоказать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
Настройка списка, ссылки на ячейку и индекса
-
Введите на новый таблицу следующие элементы в диапазоне H1:H20:
H1: ОльговСкие о-ва
H2: VCR
H3 : Desk
H4 : Ольга
H5 : Автомобиль
H6 : Компьютер-автомат
H7 : Rocket Launcher
H8 : велосипед
H9 : Телефон
H10: Сша
H11: Конфеты
H12: динамики
H13: дресс
H14: Одея
H15: Dryer
H16: Гоголев
H17: сухи
H18: набор инструментов
H19: VCR
H20: жесткий диск
-
В ячейке A1 введите следующую формулу:
=ИНДЕКС(H1:H20;G1;0)
Пример списка
-
Чтобы добавить список в Excel 2007 и более поздних версиях, на вкладке Разработчик в группе Элементы управления нажмите кнопку Вставить, а затем в группе Элементы управления формы выберите элемент Форма списка (элемент управления).
Чтобы добавить список в Excel 2003 и более ранних версиях Excel, нажмите кнопку Список на панели инструментов Формы. Если панель инструментов Формы не отображается, найдите в меню Вид пункт Панели инструментов и выберите пункт Формы. -
Щелкните место на листе, где должен отображаться левый верхний угол списка, и перетащите его в то место, где должен быть нижний правый угол списка. В этом примере создайте список для ячеек B2:E10.
-
В группе Элементы управления нажмите кнопку Свойства.
-
В окне Формат объекта введите следующие данные и нажмите кнопку ОК.
-
Чтобы указать диапазон для списка, введите H1:H20 в поле Диапазон ввода.
-
Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.
Примечание: Формула ИНДЕКС() использует значение в G1 для возврата правильного элемента списка.
-
Убедитесь,что в области Тип выделения выбран вариант Один.
Примечание: Параметры Multi и Extend полезны только при использовании процедуры Microsoft Visual Basic для приложений для возврата значений списка. Обратите внимание также на то, что при этом к списку добавляется объемный вид.
-
-
В списке должен отображаться список элементов. Чтобы использовать список, щелкните любую ячейку, чтобы он не был выбран. Если щелкнуть элемент в списке, ячейка G1 будет обновлена на число, которое указывает положение элемента, выбранного в списке. Формула ИНДЕКС в ячейке A1 использует это число для отображения имени элемента.
Пример «Поле со combo»
-
Чтобы добавить поле со полем со Excel 2007 и более поздних версий, на вкладке Разработчик нажмите кнопку Вставить ивыберите поле со полем со полем в области Элементы управления формы.
Чтобы добавить поле со Excel 2003 и более ранних версиях Excel, нажмите кнопку Поле со полем со полем на панели инструментов Формы. -
Щелкните место на листе, где должен отображаться левый верхний угол списка, а затем перетащите поле со списком в то место, где должен быть нижний правый угол списка. В этом примере создайте поле соbo, которое охватывает ячейки B2:E2.
-
Щелкните правой кнопкой мыши поле со полем и выберите форматирование.
-
Введите следующую информацию и нажмите кнопку ОК.
-
Чтобы указать диапазон для списка, введите H1:H20 в поле Диапазон ввода.
-
Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.
Примечание: Формула ИНДЕКС использует значение в G1 для возврата правильного элемента списка.
-
В поле Drop down lines (Вниз) введите 10. Эта запись определяет, сколько элементов будет отображаться перед использованием точки прокрутки для просмотра других элементов.
Примечание: При желании не может быть затенение. Она добавляет трехмерный вид в поле со полем со структурой.
-
-
В поле со списком должен отображаться список элементов. Чтобы использовать поле со полем со ссылкой или полем со ссылкой, щелкните любую ячейку, чтобы объект не был выбран. При щелчке элемента в поле со списком или в поле со списком ячейка G1 обновляется на число, которое указывает на положение в списке выбранного элемента. Формула ИНДЕКС в ячейке A1 использует это число для отображения имени элемента.
Пример счетчика
-
Чтобы добавить счетчик в Excel 2007 и более поздних версиях, на вкладке Разработчик нажмите кнопку Вставить ив области Элементы управления формынажмите кнопку Счетчик.
Чтобы добавить счетчик в Excel 2003 и более ранних версиях Excel, нажмите кнопку Счетчик на панели инструментов Формы. -
Щелкните место, где должен отображаться левый верхний угол счетчика, и перетащите его в то место, где должен быть нижний правый угол счетчика. В этом примере создайте счетчик, который охватывает ячейки B2: B3.
-
Щелкните правой кнопкой мыши счетчик и выберите форматирование.
-
Введите следующую информацию и нажмите кнопку ОК.
-
В поле Текущее значение введите 1.
Это значение инициализирует счетчик, чтобы формула ИНДЕКС укачивает на первый элемент в списке.
-
В поле Минимальное значение введите 1.
Это значение ограничивает верхнюю часть счетчика первым элементом в списке.
-
В поле Максимальное значение введите 20.
Это число определяет максимальное количество записей в списке.
-
В поле Приращение введите 1.
Это значение управляет приращением текущего значения при счетчике.
-
Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.
-
-
Щелкните любую ячейку, чтобы счетчик не был выбран. При нажатии на счетчик элемента управления вверх или вниз ячейка G1 обновляется на число, которое указывает текущее значение счетчика плюс или минус добавочная смена счетчика. Это число затем обновляет формулу ИНДЕКС в ячейке A1 для показа следующего или предыдущего элемента.
Значение счетчика не изменится, если текущее значение — 1, если щелкнуть вниз или если текущее значение 20 и при нажатии кнопки вверх.
Пример scroll bar
-
Чтобы добавить полоса прокрутки в Excel 2007 и более поздних версиях, на вкладке Разработчик нажмите кнопку Вставить ив области Элементы управления формы выберите элемент Полоса прокрутки.
Чтобы добавить в Excel 2003 и более ранних версиях Excel, нажмите кнопку Scroll Bar на панели инструментов Формы. -
Щелкните место, где должен отображаться левый верхний угол ручья, и перетащите его в то место, где должен быть нижний правый угол ручья. В этом примере создайте полосу прокрутки, которая по высоте охватывает ячейки B2:B6 и занимает около одной четвертой ширины столбца.
-
Щелкните правой кнопкой мыши прокрутку и выберите форматирование.
-
Введите следующую информацию и нажмите кнопку ОК.
-
В поле Текущее значение введите 1.
Это значение инициализирует ось прокрутки, чтобы формула ИНДЕКС укачивала на первый элемент в списке.
-
В поле Минимальное значение введите 1.
Это значение ограничивает верхнюю часть верхней части ручека первым элементом в списке.
-
В поле Максимальное значение введите 20. Это число определяет максимальное количество записей в списке.
-
В поле Приращение введите 1.
Это значение управляет тем, сколько чисел приращение текущего значения на панели прокрутки.
-
В поле Изменение страницы введите 5. Это значение управляет тем, насколько приращением будет текущее значение, если щелкнуть в окне прокрутки с обеих сторон окна прокрутки.
-
Чтобы поместить число в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле Связь с ячейкой.
Примечание: При желании не может быть затенение. К панели прокрутки будет добавлен трехмерный вид.
-
-
Щелкните любую ячейку, чтобы не выделить прокрутку. При нажатии на элемент управления прокрутки вверх или вниз ячейка G1 обновляется на число, которое указывает текущее значение крутки в плюс или минус добавочная смена крутки. Это число используется в формуле ИНДЕКС в ячейке A1 для показа элемента рядом с текущим элементом или перед этим. Вы также можете перетащить поле прокрутки, чтобы изменить значение, или щелкнуть в окне прокрутки с обеих сторон, чтобы приращение на 5 (значение изменения страницы). Прокрутка не изменится, если текущее значение — 1, если щелкнуть вниз или если текущее значение — 20 и вы щелкаете его вверх.
Нужна дополнительная помощь?
Ранее я рассмотрел методы создания пользовательских форм и основы работы с ними (если вы никогда не работали с пользовательскими формами, рекомендую для начала прочитать указанную заметку). В настоящем материале приводится целый ряд практически полезных примеров пользовательских диалоговых окон.[1]
Рис. 1. Меню на основе элементов управления CommandButton или ListBox
Скачать заметку в формате Word или pdf, примеры в архиве
Создание меню
Меню можно создать с помощью элементов управления CommandButton (рис. 1; см. файл userform menus.xlsm) и с помощью элемента управления ListBox. Каждый элемент управления CommandButton имеет собственную процедуру обработки событий. Например, представленная ниже процедура выполняется после щелчка на кнопке CommandButton1:
Private Sub CommandButton1_Click() Me.Hide Call Macro1 Unload Me End Sub |
Эта процедура приводит к вызову макроса Macro1 и закрытию диалогового окна UserForm. После щелчка на других кнопках (отличных от CommandButton1) вызываются похожие процедуры обработки событий.
В случае использования элемента управления ListBox, перед отображением пользовательского диалогового окна вызывается процедура обработки события Initialize. В следующей процедуре используется метод Addltem для добавления шести опций в элемент управления ListBox:
Private Sub UserForm_Initialize() With ListBox1 .AddItem «Макрос1» .AddItem «Макрос2» .AddItem «Макрос3» .AddItem «Макрос4» .AddItem «Макрос5» .AddItem «Макрос6» End With End Sub |
Процедура обработки события привязывается к кнопке Выполнить:
Private Sub ExecuteButton_Click() Select Case ListBox1.ListIndex Case —1 MsgBox «Выберите макрос из списка.» Exit Sub Case 0: Me.Hide: Call Macro1 Case 1: Me.Hide: Call Macro2 Case 2: Me.Hide: Call Macro3 Case 3: Me.Hide: Call Macro4 Case 4: Me.Hide: Call Macro5 Case 5: Me.Hide: Call Macro6 End Select Unload Me End Sub |
Данная процедура проверяет значение свойства Listlndex элемента управления ListBox, чтобы определить, какой элемент выбран в списке (если свойство Listlndex равно –1, то не выбран ни один из элементов). После этого запускается соответствующий макрос.
Выбор диапазона в пользовательской форме
Некоторые встроенные диалоговые окна Excel предоставляют пользователю возможность выбирать диапазон. Например, диалоговое окно Подбор параметра, для вызова которого следует пройти по меню Данные –> Работа с данными –> Анализ «что если « –> Подбор параметра, запрашивает у пользователя два диапазона. Пользователь может или ввести имя диапазона непосредственно в окне, или применить мышь для выделения диапазона на листе.
Пользовательское диалоговое окно также обеспечивает подобную функциональность. Это достигается с помощью элемента управления RefEdit. Данный элемент выглядит иначе, чем элемент выбора диапазона во встроенных диалоговых окнах Excel, однако работает точно так же. Если пользователь щелкнет на небольшой кнопке в правой части элемента управления, то диалоговое окно временно исчезнет, а на экране будет отображен небольшой указатель выбора диапазона.
К сожалению, элемент управления RefEdit не позволяет использовать специальные клавиши при выделении диапазона (например, невозможно выделить ячейки до конца столбца, нажав комбинацию клавиш Shift+↓). Кроме того, после щелчка мышью на маленькой кнопке в правой части элемента управления (для временного сокрытия диалогового окна) можно применять только выделения с помощью мыши. Клавиатуру в этом случае применять нельзя.
На рис. 2 представлено пользовательское диалоговое окно с добавленным элементом управления RefEdit (см. файл range selection demo.xlsm). Это диалоговое окно выполняет простую математическую операцию над всеми не содержащими формул и непустыми ячейками указанного диапазона. Выполняемая операция задается активным переключателем OptionButton.
Рис. 2. С помощью элемента управления RefEdit можно выбрать диапазон
Элемент управления RefEdit возвращает текстовую строку, которая представляет выбранный диапазон. Можно преобразовать эту строку в объект Range. Для этого используется оператор:
Set UserRange = Range(RefEditl.Text)
Удачной практикой считается инициализация элемента управления RefEdit для представления текущего выделения. Для этого в процедуре UserForm_Initialize воспользуйтесь оператором:
RefEditl.Text = ActiveWindow.RangeSelection.Address
Для достижения наилучших результатов не помещайте элемент управления RefEdit внутри элемента Frame либо MultiPage. Это может привести к сбою в работе Excel. Элемент управления RefEdit не всегда возвращает действительный диапазон. Выделение диапазона указателем мыши — это один из способов присвоения значения данному элементу управления. Пользователь может ввести в поле любой текст, а также отредактировать или удалить уже отображаемый текст. Таким образом, предварительно необходимо убедиться, что диапазон является допустимым.
Следующий код — это пример одного из способов проверки допустимости введенного значения. Если определено, что значение неправильное, то пользователю выдается сообщение, а элемент управления RefEdit становится активным, предоставляя возможность ввести корректный диапазон.
On Error Resume Next Set UserRange = Range(RefEdit1.Text) If Err <> 0 Then MsgBox «Выбран некорректный диапазон» RefEdit1.SetFocus Exit Sub End If On Error GoTo 0 |
Пользователь может щелкнуть на вкладке одного из листов при выборе диапазона, применив элемент управления RefEdit. Поэтому не всегда выбранный диапазон находится на активном рабочем листе. Если пользователем выбран другой лист, то адрес диапазона указывается после имени листа, на котором этот диапазон находится. Если необходимо получить от пользователя выделение в виде одной ячейки, то можно указать верхнюю левую ячейку выделенного диапазона. Воспользуйтесь следующим оператором:
Set OneCell = Range(RefEditl.Text).Range("
Al"
)
Создание заставки
Некоторые разработчики предпочитают отображать определенную вступительную информацию при запуске приложения. Эта методика называется заставкой. Без сомнения, все пользователи видели заставку Excel, которая отображается несколько секунд при запуске программы. В приложении Excel заставку можно создать с помощью пользовательского диалогового окна. В приведенном ниже примере реализуется автоматическое отображение заставки, которое исчезает по истечении пяти секунд (рис. 3; см. файл splash screen.xlsm). Для создания заставки выполните следующие действия:
- Создайте рабочую книгу.
- Активизируйте редактор VBE и вставьте пользовательское диалоговое окно в проект. Код в этом примере предполагает, что объект UserForm называется UserForm1.
- Поместите любые необходимые элементы управления в только что созданное диалоговое окно UserForm1. Например, вам может понадобиться расположить элемент управления Image, который будет содержать логотип компании (рис. 3).
- Вставьте процедуру в модуль кода для объекта ЭтаКнига (ThisWorkbook):
Private Sub Workbook_Open() UserForm1.Show End Sub |
- Вставьте следующую процедуру в модуль кода для объекта UserForm1 (эта процедура обеспечивает пятисекундную задержку). Если нужно другое время задержки, измените значение аргумента функции TimeValue.
Private Sub UserForm_Activate() Application.OnTime Now + TimeValue(«00:00:05»), «KillTheForm» End Sub |
Рис. 3. Эта заставка на короткое время появляется на экране после открытия рабочей книги
- В общий модуль VBA вставьте следующую процедуру.
Private Sub KillTheForm() Unload UserForm1 End Sub |
При открытии рабочей книги будет выполнена процедура Workbook_Open и появится диалоговое окно UserForm (п. 4). В этот момент генерируется событие Activate, которое приводит к выполнению процедуры UserForm_ Activate (п. 5). Данная процедура использует метод OnTime объекта Application для выполнения процедуры KillTheForm в определенный момент времени. Однако предварительно определена задержка в пять секунд с момента возникновения события Activate. Процедура KillTheForm просто выгружает диалоговое окно UserForm из памяти.
- В качестве необязательного действия можно добавить элемент управления CommandButton с именем CancelButton, установить его свойство Cancel равным True и добавить представленную ниже процедуру обработки события в модуль кода формы UserForm.
Private Sub CancelButton_Click() Unload Me End Sub |
Таким образом, пользователь сможет закрыть заставку, прежде чем пройдет указанное время задержки. Окно будет закрыто также в результате нажатия клавиши <Esc>. Эту небольшую кнопку можно разместить за другим объектом, чтобы она не была видна.
Помните о том, что заставка не будет отображаться, если рабочая книга загружена не полностью. Другими словами, если нужно отобразить заставку только для того, чтобы пользователь не скучал во время загрузки рабочей книги, описанная выше методика не годится.
Для того чтобы выполнить VBA-процедуру при открытии документа, нужно так отобразить пользовательское диалоговое окно в немодальном режиме, чтобы код продолжал выполняться. Для этого измените процедуру WorkbookOpen следующим образом.
Private Sub Workbook_Open() UserForml.Show vbModeless ‘ другой код End Sub |
Отключение кнопки закрытия пользовательского диалогового окна
Если пользовательское диалоговое окно уже отображено на экране, щелчок на кнопке Закрыть в правом верхнем углу приведет к выгрузке формы UserForm из памяти. Иногда этого допускать нельзя. Например, иногда требуется, чтобы диалоговое окно UserForm закрывалось только после щелчка на специальной кнопке CommandButton. Несмотря на то что реально отключить кнопку Закрыть невозможно, вы вправе предотвратить закрытие диалогового окна, вызванное щелчком на этой кнопке. Для этого воспользуйтесь обработчиком события QueryClose (см. файл gueryclose demo.xlsm). Следующая процедура, которая расположена в модуле кода диалогового окна UserForm, выполняется перед закрытием формы (т.е. в момент возникновения события QueryClose).
Private Sub UserForm_QueryClose _ (Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then MsgBox «Щелкните на кнопке OK для закрытия формы.» Cancel = True End If End Sub |
Процедура UserForm_QueryClose использует два аргумента. Аргумент CloseMode содержит значение, которое указывает на причину возникновения события QueryClose. Если значение аргумента CloseMode равно vbFormControlMenu (встроенная константа), значит, пользователь щелкнул на кнопке Закрыть. В таком случае будет отображено сообщение (рис. 4); аргумент Cancel устанавливается равным True, и форма не закрывается.
Рис. 4. Процедура перехватывает закрытие окна, и оставляет его открытым
Имейте в виду, что пользователь может нажать клавиши <Ctrl+Break>, прекратив тем самым выполнение макроса. В рассматриваемом примере нажатие клавиш <Ctrl+Break> во время отображения формы UserForm на экране приведет к тому, что пользовательское диалоговое окно будет закрыто. Во избежание этого выполните следующий оператор до отображения пользовательского диалогового окна:
Application.EnableCancelKey = xlDisabled
Прежде чем добавить этот оператор, удостоверьтесь, что в приложении нет ошибок. В противном случае возникает опасность формирования бесконечного цикла.
Изменение размера диалогового окна
Во многих приложениях используются окна, которые могут изменять собственные размеры, добавляя кнопки и опции. Например, высота диалогового окна Excel Найти и заменить, которое отображается после выбора команды Главная –> Редактирование –> Найти и выделить –> Заменить, увеличивается после щелчка на кнопке Параметры.
Изменение размеров пользовательского диалогового окна осуществляется путем изменения значений свойств Width и Height объекта UserForm. На рис. 5а показано первоначальное диалоговое окно, а на рис. 5б показано это же окно после щелчка на кнопке Параметры. Обратите внимание на то, что надпись на кнопке изменяется в зависимости от размера диалогового окна (см. файл change userform size.xlsm).
Рис. 5. Диалоговое окно: вверху – в стандартном режиме; внизу – после нажатия на кнопке Параметры
Создавая пользовательское диалоговое окно, определите его максимальный размер, чтобы получить доступ ко всем элементам управления. После этого воспользуйтесь процедурой UserForm_Initialize для установки размеров диалогового окна по умолчанию.
В коде применяются две константы, определенные в верхней части модуля.
Const SmallSize As Integer = 124
Const LargeSize As Integer = 164
Пример предназначен для печати рабочих листов активной книги. Он позволяет пользователю указать листы, которые необходимо распечатать. Ниже приведена процедура обработки события, которая выполняется после щелчка на кнопке Параметры.
Private Sub OptionsButton_Click() If OptionsButton.Caption = «Параметры >>» Then Me.Height = LargeSize OptionsButton.Caption = «<< Параметры» Else Me.Height = SmallSize OptionsButton.Caption = «Параметры >>» End If End Sub |
Эта процедура проверяет значение свойства Caption объекта CommandButton и устанавливает значение свойства Height объекта UserForm в соответствии с полученным значением свойства Caption.
Если элементы управления не отображаются из-за того, что находятся за пределами границы диалогового окна, соответствующие этим элементам управления комбинации клавиш будут продолжать функционировать. В рассматриваемом примере пользователь может нажать клавиши <Alt+L> (для выбора альбомной ориентации страницы), даже если соответствующий элемент управления не отображается на экране.
Масштабирование и прокрутка листа в пользовательском диалоговом окне
Для прокрутки и масштабирования листа при активном диалоговом окне можно применить элемент управления ScrollBar (рис. 6; см. файл zoom and scroll sheet.xlsm). В этом примере масштаб можно изменять в диапазоне от 100 до 400%. Два элемента управления ScrollBar в нижней части диалогового окна позволяют прокручивать лист по горизонтали и по вертикали.
Рис. 6. Элементы управления ScrollBar позволяют прокручивать лист и изменять его масштаб
Элементы управления инициализируются в процедуре UserForm_Initialize:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Private Sub UserForm_Initialize() LabelZoom.Caption = ActiveWindow.Zoom & «%» ‘ Масштабирование With ScrollBarZoom .Min = 10 .Max = 400 .SmallChange = 1 .LargeChange = 10 .Value = ActiveWindow.Zoom End With ‘ Прокрутка по горизонтали With ScrollBarColumns .Min = 1 .Max = ActiveSheet.UsedRange.Columns.Count .Value = ActiveWindow.ScrollColumn .LargeChange = 25 .SmallChange = 1 End With ‘ Прокрутка по вертикали With ScrollBarRows .Min = 1 .Max = ActiveSheet.UsedRange.Rows.Count .Value = ActiveWindow.ScrollRow .LargeChange = 25 .SmallChange = 1 End With End Sub |
Эта процедура позволяет устанавливать значения различных свойств элементов управления ScrollBar. Значения определяются на основе данных, полученных из активного окна. При использовании элемента управления ScrollBarZoom выполняется процедура ScrollBarZoom_Change. Она устанавливает значение свойства Zoom объекта ActiveWindow равным значению свойства Value элемента управления ScrollBar. Кроме того, изменяется текст подписи, которая представляет текущий масштаб рабочего листа.
Private Sub ScrollBarZoom_Change() With ActiveWindow .Zoom = ScrollBarZoom.Value LabelZoom = .Zoom & «%» .ScrollColumn = ScrollBarColumns.Value .ScrollRow = ScrollBarRows.Value End With End Sub |
Прокрутка листа осуществляется с помощью двух процедур. Эти процедуры устанавливают значение свойств ScrollRow и ScrollColumns объекта ActiveWindow равными значениям свойств Value элементов управления ScrollBar.
Private Sub ScrollBarColumns_Change() ActiveWindow.ScrollColumn = ScrollBarColumns.Value End Sub Private Sub ScrollBarRows_Change() ActiveWindow.ScrollRow = ScrollBarRows.Value End Sub |
При нажатии на кнопку Ok пользовательская форма закрывается:
Private Sub OKButton_Click() Unload Me End Sub |
Применение элемента управления MultiPage
Элемент управления MultiPage применяется при отображении в пользовательских диалоговых окнах множества элементов управления. Элемент управления MultiPage позволяет группировать опции, а также размещать каждую группу на отдельной вкладке (рис. 7; см. файл multipage control demo.xlsm). Панель инструментов Toolbox также включает элемент управления TabStrip, напоминающий элемент управления MultiPage. Однако в отличие от MultiPage, элемент управления TabStrip не может включать другие объекты. Поскольку элемент управления MultiPage является более гибким, вряд ли вам придется обращаться к элементу управления TabStrip.
Рис. 7. Элемент управления MultiPage группирует элементы управления на страницах, доступ к которым обеспечивается с вкладки
Вкладка (или страница), которая отображается поверх всех остальных, определяется значением свойства Value элемента управления MultiPage. Значение 0 соответствует первой вкладке. Значение 1 вызывает отображение второй вкладки и т.д. По умолчанию элемент управления MultiPage состоит из двух страниц. Для того чтобы добавить дополнительные вкладки, щелкните на любой вкладке правой кнопкой мыши и в контекстном меню выберите пункт New Page.
При работе с элементом управления MultiPage щелкните на вкладке, чтобы установить свойства страницы. В окне Properties отобразятся свойства, значения которых можно изменить. Иногда сложно выделить сам элемент управления MultiPage, так как щелчок на нем приводит к выделению страницы элемента управления. Для того чтобы выделить только элемент управления, щелкните на его границе. Кроме того, можете воспользоваться клавишей <Таb> для циклического перемещения между элементами управления. Еще одним вариантом выделения элемента управления является выбор пункта MultiPage из раскрывающегося списка окна Properties.
Если элемент управления MultiPage содержит много вкладок, то присвойте его свойству MultiRow значение True, чтобы отобразить вкладки в несколько строк. Если необходимо, то вместо вкладок можно отображать кнопки. Достаточно изменить значение свойства Style на 1. Если значение свойства Style равно 2, элемент управления MultiPage не будет отображать ни вкладки, ни кнопки.
Свойство TabOrientation определяет расположение вкладок на элементе управления MultiPage. Для каждой страницы можно установить эффект перехода. Для этого воспользуйтесь свойством TransitionEffect. Например, щелчок на вкладке приведет к тому, что новая страница «отодвинет» старую. Применяйте свойство TransitionPeriod, чтобы задать скорость эффекта перехода.
Использование внешних элементов управления
Пример, рассматриваемый в этом разделе, основан на элементе управления Microsoft Windows Media Player. Несмотря на то что он не является элементом управления Excel (настраивается при установке Windows), он прекрасно работает с формами UserForm. Для того чтобы воспользоваться элементом управления Microsoft Windows Media Player выполните следующие действия:
- Активизируйте среду VBE.
- Создайте новую пользовательскую форму: Insert –> UserForm.
- Щелкните правой кнопкой мыши на панели Toolbox и в контекстном меню выберите параметр Additional Controls (Дополнительные элементы управления). Если окно Toolbox не отображается, выполните команду View –> Toolbox.
- В окне Additional Controls установите флажок Windows Media Player (рис. 8).
- Щелкните на кнопке ОК. Набор инструментов пополнится новым элементом управления.
Рис. 8. Подключение элемента управления Microsoft Windows Media Player
На рис. 9 показаны элемент управления Windows Media Player, встроенный в форму UserForm, а также окно Properties (см. также файл mediaplayer.xlsm, расположенный в отдельной папке). Свойство URL определяет URL-ссылку воспроизводимой композиции (музыкальная запись или видеоролик). Если композиция находится на жестком диске вашего компьютера, свойство URL определяет полный путь и имя соответствующего файла.
Рис. 9. Элемент управления Windows Media Player, встроенный в форму
На рис. 10 показан пример использования этого элемента управления. Для сокрытия окна, предназначенного для отображения видеороликов, была уменьшена высота окна элемента управления Windows Media Player. Также был добавлен список, созданный на основе элемента управления ListBox, в котором отображаются аудиофайлы MP3. После щелчка на кнопке Пуск начинается воспроизведение выбранного файла. Щелчок на кнопке Закрыть приведет к прекращению воспроизведения и к закрытию окна UserForm. Форма UserForm отображается в немодальном режиме, поэтому можно продолжать работу во время отображения диалогового окна.
Рис. 10. Элемент управления Windows Media Player в действии
Названия МРЗ-файлов в окне списка отображаются с помощью процедуры UserForm_Initialize. В целях упрощения алгоритма аудофайлы находятся в той же папке, что и рабочая книга. Можно реализовать и более гибкий подход, предусматривающий выбор пользователем папки, содержащей требуемые аудиофайлы.
Private Sub UserForm_Initialize() Dim FileName As String ‘ Заполнение списка MP3—файлами FileName = Dir(ThisWorkbook.Path & «*.mp3», vbNormal) Do While Len(FileName) > 0 ListBox1.AddItem FileName FileName = Dir() Loop ListBox1.ListIndex = 0 End Sub |
Код обработчика событий PlayButton_Click включает единственный оператор, который присваивает выбранное имя файла свойству URL объекта WindowsMediaPlayer1.
Private Sub PlayButton_Click() ‘ Свойство URL загружает трек и запускает плеер WindowsMediaPlayer1.URL = _ ThisWorkbook.Path & «« & ListBox1.List(ListBox1.ListIndex) End Sub |
Анимация элемента управления Label
Форма UserForm (рис. 11) представляет собой интерактивный генератор случайных чисел. Два элемента управления TextBox содержат верхнее и нижнее значения для случайного числа. Элемент управления Label изначально отображает четыре знака вопроса, а после щелчка мышью на кнопке Пуск отображаются анимированные случайные числа. При этом кнопка Пуск превращается в кнопку Остановить, а щелчок на ней мышью приводит к прекращению анимации и отображению случайного числа. Код, связанный с кнопкой генератора случайных чисел можно найти в модуле UserForm1 файла random number generator.xlsm.
Рис. 11. Генератор случайных чисел
Поскольку кнопка выполняет две функции (запуск и остановка анимации), в процедуре используется общедоступная переменная Stopped, с помощью которой отслеживается состояние кнопки. Первая часть процедуры состоит из двух структур If-Then, с помощью которых проверяется содержимое элементов управления TextBox. Два другая подобных оператора позволяют удостовериться в том, что меньшая величина действительно не превосходит большей величины. В следующем разделе кода осуществляется настройка размера шрифта элемента управления Label на основании максимальной величины. Цикл Do Until loop генерирует и отображает случайные числа. Обратите внимание на оператор DoEvents. Он позволяет Excel использовать все возможности операционной системы. Если бы его не было, элемент управления Label не смог бы отобразить каждое генерируемое случайное число. Другими словами, именно оператор DoEvents делает возможной анимацию.
Форма UserForm также включает элемент управления CommandButton, который выполняет функции кнопки Отмена. Этот элемент управления находится за пределами окна UserForm, поэтому невидим. Свойству Cancel элемента управления CommandButton присвоено значение True. Вследствие этого нажатие клавиши <Esc> дает тот же эффект, что и щелчок на кнопке Отмена. Соответствующая процедура обработки событий присваивает переменной Stopped значение True и выгружает форму UserForm.
[1] По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 439–449, 466–472.
Пример создания пользовательской формы в редакторе VBA Excel для начинающих программировать с нуля. Добавление на форму текстового поля и кнопки.
Начинаем программировать с нуля
Часть 4. Первая форма
[Часть 1] [Часть 2] [Часть 3] [Часть 4]
Создание пользовательской формы
Создайте или откройте файл Excel с расширением .xlsm
(Книга Excel с поддержкой макросов) или с расширением .xls
в старых версиях приложения.
Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:
Добавление элементов управления
Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:
При наведении курсора на элементы управления появляются подсказки.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.
Кликнув по элементу управления на форме, вы можете изменять его размер, перетягивая границы за белые квадратики, и перетаскивать по форме, ухватив за одну из границ. Кликнув по заголовку формы или по ее рабочему полю, вы можете также изменять ее размер, перетягивая границы за белые квадратики.
Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».
Отображение формы на экране
Чтобы запустить пользовательскую форму для просмотра из редактора VBA, необходимо выбрать ее, кликнув по заголовку или свободному от элементов управления полю, и совершить одно из трех действий:
- нажать клавишу «F5»;
- нажать на треугольник на панели инструментов (на изображении выше треугольник находится под вкладкой «Debug»);
- нажать кнопку «Run Sub/UserForm» во вкладке «Run».
Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:
Private Sub CommandButton1_Click() UserForm1.Show End Sub |
Для «кнопки – элемента управления формы» можно использовать следующий код, размещенный в стандартном программном модуле:
Sub ShowUserForm() UserForm1.Show End Sub |
В результате вышеперечисленных действий мы получаем на рабочем листе Excel пользовательскую форму с мигающим курсором в текстовом поле:
Добавление программного кода
Программный код для пользовательской формы и элементов управления формы записывается в модуль формы. Перейти в модуль формы можно через контекстное меню, кликнув правой кнопкой мыши на поле формы или на ссылке «UserForm1» в проводнике слева и нажав кнопку «View Code».
Переходить между открытыми окнами в редакторе VBA можно через вкладку «Window» главного меню.
Изменить название пользовательской формы и элементов управления, их размеры и другие свойства можно через окно свойств (Properties Window), которое можно отобразить клавишей «F4». Мы же это сделаем с помощью кода VBA Excel, записанного в модуль формы.
Откройте модуль формы, кликнув правой кнопкой мыши по форме и нажав кнопку «View Code» контекстного меню. Скопируйте следующий код VBA, который будет задавать значения свойств формы и элементов управления перед ее отображением на экране:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
Private Sub UserForm_Initialize() ‘Me — это обращение к форме в ее модуле With Me ‘Присваиваем форме заголовок .Caption = «Новая форма» ‘Задаем ширину формы .Width = 300 ‘Задаем высоту формы .Height = 150 End With With TextBox1 ‘Задаем ширину текстового поля .Width = 200 ‘Задаем высоту текстового поля .Height = 20 ‘Задаем расстояние от внутреннего края ‘формы сверху до текстового поля .Top = 30 ‘Задаем расстояние от внутреннего края ‘формы слева до текстового поля, чтобы ‘текстовое поле оказалось по центру .Left = Me.Width / 2 — .Width / 2 — 6 ‘Задаем размер шрифта .Font.Size = 12 ‘Присваиваем текст по умолчанию .Text = «Напишите что-нибудь своё!» End With With CommandButton1 ‘Задаем ширину кнопки .Width = 70 ‘Задаем высоту кнопки .Height = 25 ‘Задаем расстояние от внутреннего края ‘формы сверху до кнопки .Top = 70 ‘Задаем расстояние от внутреннего края ‘формы слева до кнопки, чтобы ‘кнопка оказалось по центру .Left = Me.Width / 2 — .Width / 2 — 6 ‘Задаем размер шрифта .Font.Size = 12 ‘Присваиваем кнопке название .Caption = «OK» End With End Sub |
Вставьте скопированный код в модуль формы:
Познакомьтесь еще с одним способом отображения на экране пользовательской формы в процессе тестирования: установите курсор внутри процедуры UserForm_Initialize()
и нажмите клавишу «F5» или треугольник на панели инструментов. Все предыдущие способы (с выбором формы в редакторе и кнопками на рабочем листе) тоже работают.
В результате мы получаем следующую форму:
Теперь перейдите в редактор VBA, откройте проект формы «UserForm1» и дважды кликните по кнопке «CommandButton1». В результате откроется модуль формы и будет создан шаблон процедуры CommandButton1_Click()
, которая будет запускаться при нажатии кнопки:
Private Sub CommandButton1_Click() End Sub |
Вставьте внутрь шаблона процедуры CommandButton1_Click()
следующую строку кода, которая будет копировать текст из текстового поля в ячейку «A1» активного рабочего листа:
Range(«A1») = TextBox1.Text |
Отобразите пользовательскую форму на экране и проверьте работоспособность кнопки «OK».
Элементы управления формы в MS EXCEL
Элементы управления формы (Поле со списком, Флажок, Счетчик и др.) помогают быстро менять данные на листе в определенном диапазоне, включать и выключать опции, делать выбор и пр. В принципе, без них можно обойтись, но они делают управление данными на листе более наглядным и уменьшают вероятность ввода некорректных данных.
Для вставки элементов управления на лист необходимо отобразить вкладку Разработчик.
- В MS EXCEL 2007 это можно сделать через меню Кнопка офис/ Параметры Excel/ Основные/ Показывать вкладку Разработчик на ленте .
- В MS EXCEL 2010 это можно сделать так: Откройте вкладку Файл; Нажмите кнопку Параметры; Нажмите кнопку Настроить ленту; Выберите команду Настройка ленты и в разделе Основные вкладки установите флажок Разработчик.
Теперь вставить элемент управления можно через меню: Разработчик/ Элементы управления/ Вставить.
Обратите внимание, что в этом меню можно вставить Элементы ActiveX, которые расположены ниже интересующих нас Элементов управления формы. У обоих типов есть одни и те же элементы Кнопка, Список, Флажок и т.п. Разница между ними следующая: чтобы использовать Элементы ActiveX необходимо использовать VBA, а Элементы управления формы можно напрямую привязать к ячейке на листе.
Для тех, кто не ранее не работал с Элементами управления формы, советуем подробно ознакомиться с ними в следующих статьях:
В этой статье рассмотрим более сложный пример совместного использования элементов управления и Условного форматирования.
Разберем конкретный пример применения сразу нескольких Элементов управления. В файле примера с помощью элементов управления показано как пользователь может отредактировать значения в таблице (диапазон F9:K12).
С помощью одного из 3-х элементов управления Поле со списком, Список и Счетчик, пользователь может выбрать столбец таблицы (год). Нужный элемент управления выбирается с помощью группы Переключателей. Название выбранного элемента подсвечивается серым цветом (см. A8:B8 на рис. выше). Выбранный год выделяется в таблице Условным форматированием темно серым цветом (см. H9:H12 на рис. выше). Отображение этого выделения регулируется Флажком (фон флажка — красный). Полосами прокрутки можно редактировать Цену и Количество в выбранном году, но только в определенном диапазоне. Теперь – подробнее.
Переключатели
На листе использовано 3 Переключателя объединенных в Группу. Каждому Переключателю соответствует определенный элемент управления: Поле со списком, Список, Счетчик.
Для объединения Элементов в группу помещаем на лист Элемент управления Группа (через меню Разработчик/ Элементы управления/ Вставить). В рамках группы создаем 3 переключателя (также через меню Разработчик/ Элементы управления/ Вставить) и связываем их все с одной ячейкой С2 (выделив элемент управления, правой клавишей вызываем контекстное меню, Формат объекта…, вкладка Элемент управления).
Удерживая клавишу CTRL выделяем 3 переключателя и элемент Группа, вызываем правой клавишей мыши контекстное меню и выбираем Группировка/ Группировать. Теперь при выборе одного из трех Переключателей в Группе, в ячейке С2 будет выводиться значение 1, 2 или 3.
Поле со списком
Теперь вставим элемент управления Поле со списком. Вставить элемент можно через меню: Разработчик/ Элементы управления/ Вставить. В ячейках столбца М введем несколько значений лет: 2009, 2010, 2011, 2012, 2013. Эти значения будут использованы в элементе Поле со списком.
- выделяем диапазон М9:М12;
- нажимаем Формулы/ Определенные имена/ Присвоить имя;
- в поле Имя вводим Список.
Теперь свяжем элемент управления с данными на листе. Для этого:
- выделите элемент управления Поле со списком;
- правой клавишей вызовите его контекстное меню, затем Формат объекта…, вкладка Элемент управления;
- в поле Формировать список по диапазону вводим Список (вместо ссылки на ячейку мы ввели ссылку на определенное Имя!). Конечно, вместо имени можно было указать просто ссылку на диапазон;
- свяжем элемент с ячейкой $C$8. В этой ячейке будет выводится порядковый номер выбранного элемента списка, т.е. если выберем 2009, то выведется 1, т.к. это первый элемент в списке. Для дальнейших целей нам проще использовать именно год, а не его порядковый номер. Для этого в ячейку D8 введем формулу =C8+2008 .
Список
Вставляем на лист элемент Список. Аналогично предыдущему элементу связываем его с ячейкой $C$13 и формируем список на основе того же Именованного диапазона Список. В ячейку D13 введем формулу =C13+2008 .
Счётчик
Вставляем на лист элемент Счетчик. Определяем минимальное значение 2009, максимальное – 2013, шаг 1. Связываем элемент с ячейкой $C$17. В D17 введем формулу =С17 , т.к. элемент Счетчик в нашем случае возвращает значение года.
Чтобы определить значение какого элемента (поле со списком, список или счетчик) является активным в настоящий момент, в ячейке E9 введем формулу: =ЕСЛИ(C2=1;D8;ЕСЛИ(C2=2;D13;D17)) Как мы помним, значение в ячейке С2 определяется Группой переключателей.
Полоса прокрутки
Вставляем на лист элемент Полоса прокрутки. Этим элементом мы будем изменять ячейку на пересечении строки Количество (строка 10) и столбца выбранного года. Значения ячейки будет меняться в диапазоне от 0 до 1000. Но как определить эту ячейку?
Создадим Именованную формулу СмещГода для определения позиции выбранного года в диапазоне лет G9:K9. Нажимаем Формулы/ Определенные имена/ Присвоить имя, в поле Имя вводим СмещГода, в поле диапазон вводим формулу =ПОИСКПОЗ($E$9; $G$9:$K$9;0) Если выбран 2009, то формула вернет 1.
Для определения ячейки строки Количество, соответствующую выбранному году используем формулу =СМЕЩ($F$10;0;СмещГода) . Формула вернет диапазон, состоящий из одной ячейки.
В поле Связь с ячейкой элемента Полоса прокрутки нельзя ввести формулу, но можно, как мы уже видели, ввести Имя. Создадим Именованную формулу Количество, в поле Диапазон укажем формулу =СМЕЩ($F$10;0;СмещГода) . Теперь в поле Связь с ячейкой элемента полоса прокрутки введите Количество.
Аналогичные манипуляции проделайте с полосой прокрутки для Цены. Для этого необходимо создать Именованную формулу Цена, где в поле Диапазон указать формулу =СМЕЩ($F$11;0;СмещГода) .
Флажок
При выборе пользователем текущего года, в таблице с данными (G9:K12) соответствующий столбец будет закрашиваться серым фоном. Для выделения столбца выбранного года используем Условное форматирование.
Сначала вставим на лист элемент Флажок. Этим элементом мы будем включать и выключать выделение в таблице столбца выбранного года. Элемент свяжите с ячейкой $G$2. Если флажок снят, то в этой ячейке будет ЛОЖЬ (этому значению соответствует 0), если установлен, то ИСТИНА (этому значению соответствует 1).
Для настройки Условного форматирования выделим диапазон G9:K12. Так как формула в Условном форматировании будет содержать относительную ссылку, то убедимся, что после выделения диапазона активной ячейкой является G9 (т.е. диапазон надо выделять начиная именно с нее. Подсказкой служит поле Имя, находящееся слева от Строки формул. После выделения диапазона оно должно содержать G9).
- вызовите инструмент Условное форматирование (Главная/ Стили/ Условное форматирование/ Создать правило);
- выберите Использовать формулу для определения форматируемых ячеек;
- в поле «Форматировать значения, для которых следующая формула является истинной» введите =И(СТОЛБЕЦ(G9)=СмещГода+6;$G$2) Формула примет значение ИСТИНА, когда выполнится одновременно 2 условия:
- значение выражения (СмещГода (изменяется от 1 до 5 (т.е. от 2009 до 2013 года) + 6) совпадет с номером текущего столбца (7, т.е. 2009 год);
- Флажок Условное форматирование установлен.
- выберите требуемый формат, например, серый цвет заливки;
- нажмите ОК.
Тестируем
- убедимся, что флажок Условное форматирование установлен;
- выберем переключатель Список;
- в элементе управления Список выберем 2010;
- убедимся, что столбец 2010 выделен серым;
- Полосой прокрутки изменим количество в столбце 2010.
Результат показан на рисунке.
К сожалению, у элементов управления формы Флажок, Поле со списком и Список нет возможности отформатировать отображаемый шрифт. Зато это можно сделать у элементов ActiveX (Разработчик/ Элементы управления/ Вставить). Правда, для работы с этими элементами требуется писать программу на VBA.
Использование элементов управления форм на листе Excel
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
В Microsoft Excel есть несколько элементов управления для листов диалога, которые можно использовать для выбора элементов из списка. Примеры элементов управления: списки, поля со списком, счетчики и полосы прокрутки.
Дополнительные сведения об элементах управления форм в Excel можно найти в статье Общие сведения о формах, элементах управления форм и элементах ActiveX на листе.
Дополнительные сведения
В следующих методах показано, как использовать списки, поля со списком, счетчики и полосы прокрутки. В примерах используется один и тот же список, ссылка на ячейку и функция индекс.
Включение вкладки «Разработчик»
Чтобы использовать элементы управления формы в Excel 2010 и более поздних версиях, необходимо включить вкладку Разработчик. Для этого выполните указанные ниже действия.
Откройте вкладку Файл и выберите команду Параметры.
В левой области выберите пункт настроить ленту .
Установите флажок разработчик в разделе Основные вкладки справа, а затем нажмите кнопку ОК.
Чтобы использовать элементы управления форм в Excel 2007, необходимо включить вкладку разработчик . Для этого выполните указанные ниже действия.
Нажмите кнопку Microsoft Office, а затем — Параметры Excel.
Нажмите популярные, установите флажок Показыватьвкладку «Разработчик» на ленте и нажмите кнопку ОК.
Настройка списка, ссылки на ячейку и предметного указателя
На новом листе введите следующие элементы в диапазоне от H1: H20:
H1: роликовый Скатес
H6: Вашинг Machine
H7: Роккет Launcher
H11: — это очень привлекательные
H18: набор инструментов
H20: жесткий диск
В ячейке a1 введите следующую формулу:
= ИНДЕКС (H1: H20; G1; 0)
Пример окна списка
Чтобы добавить список в Excel 2007 и более поздних версий, откройте вкладку разработчик , нажмите кнопку Вставить в группе элементы управления , а затем в разделе элементы управления формывыберите пункт форма списка (элемент управления) .
Чтобы добавить список в Excel 2003 и более ранних версиях Excel, нажмите кнопку «список» на панели инструментов «формы». Если панель инструментов формы не отображается, в меню Вид выберите пункт панели инструментов, а затем — пункт формы.
Щелкните на листе место, где должен быть расположен левый верхний угол списка, и перетащите его в то место, где должен находиться правый нижний угол поля со списком. В этом примере создайте список, охватывающий ячейки B2: E10.
В группе элементы управления нажмите кнопку свойства.
В окне Формат объекта введите следующие данные, а затем нажмите кнопку ОК.
Чтобы задать диапазон списка, введите H1: H20 в поле диапазон ввода .
Чтобы ввести числовое значение в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле » связь с ячейкой».
Примечание: Формула INDEX () использует значение в ячейке G1, чтобы вернуть правильный элемент списка.
В разделе тип выделенияубедитесь, что выбран параметр один вариант.
Примечание: Параметры Multi и Extend полезны только в том случае, если вы используете процедуру Microsoft Visual Basic для приложений, чтобы возвращать значения списка. Также обратите внимание на то, что флажок объемной заливки позволяет добавить трехмерный вид в список.
Список элементов должен отображаться в списке. Чтобы использовать список, щелкните любую ячейку, чтобы не выделять список. Если щелкнуть элемент в списке, ячейка G1 будет обновлена числом, указывающим позицию выбранного в списке элемента. Формула INDEX в ячейке a1 использует этот номер для отображения имени элемента.
Пример поля со списком
Чтобы добавить поле со списком в Excel 2007 и более поздних версиях, откройте вкладку разработчик , нажмите кнопку Вставить, а затем в разделе элементы управления формыщелкните поле со списком .
Чтобы добавить поле со списком в Excel 2003 и более ранних версиях Excel, нажмите кнопку раскрывающегося списка на панели инструментов формы.
Щелкните на листе место, где должен быть расположен левый верхний угол поля со списком, а затем перетащите поле со списком в то место, где должен находиться правый нижний угол окна списка. В этом примере создайте поле со списком, которое охватывает ячейки B2: E2.
Щелкните поле со списком правой кнопкой мыши и выберите пункт Формат элемента управления.
Введите указанные ниже данные и нажмите кнопку ОК.
Чтобы задать диапазон списка, введите H1: H20 в поле диапазон ввода .
Чтобы ввести числовое значение в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле » связь с ячейкой».
Примечание: Формула INDEX использует значение в ячейке G1, чтобы вернуть правильный элемент списка.
В поле строки раскрывающегося списка введите 10. Этот параметр определяет, сколько элементов будет отображаться, прежде чем использовать полосу прокрутки для просмотра остальных элементов.
Примечание: Флажок объемной заливки необязателен. Он добавляет трехмерный вид в раскрывающийся список или поле со списком.
В раскрывающемся списке или поле со списком должен быть отображен список элементов. Чтобы использовать раскрывающийся список или поле со списком, щелкните любую ячейку, чтобы выделить объект. Если щелкнуть элемент в раскрывающемся списке или поле со списком, ячейка G1 будет обновлена числом, указывающим позицию в списке выбранного элемента. Формула INDEX в ячейке a1 использует этот номер для отображения имени элемента.
Пример кнопки «Счетчик»
Чтобы добавить счетчик в Excel 2007 и более поздних версий, откройте вкладку разработчик , нажмите кнопку Вставить, а затем в разделе элементы управления формынажмите кнопку Счетчик .
Чтобы добавить счетчик в Excel 2003 и более ранних версиях Excel, нажмите кнопку «Счетчик» на панели инструментов «формы».
Щелкните на листе место, где должен быть расположен левый верхний угол счетчика, а затем перетащите счетчик в то место, где должен находиться правый нижний угол кнопки счетчика. В этом примере создайте прокрутку кнопки, которая охватывает ячейки B2: B3.
Щелкните правой кнопкой мыши кнопку счетчик и выберите пункт Формат элемента управления.
Введите указанные ниже данные и нажмите кнопку ОК.
В поле Текущее значение введите 1.
Это значение инициализирует счетчик, чтобы формула указателя указывала на первый элемент в списке.
В поле минимальное значение введите 1.
Это значение ограничивает верхнюю часть счетчика на первый элемент в списке.
В поле Максимальное значение введите 20.
Этот номер задает максимальное количество элементов в списке.
В поле Шаг изменения введите 1.
Это значение определяет степень приращения текущего значения с помощью элемента управления «Счетчик».
Чтобы ввести числовое значение в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле «связь с ячейкой».
Щелкните любую ячейку, чтобы кнопка счетчика не выделена. Если щелкнуть элемент управления вверх или вниз на кнопке счетчик, ячейка G1 будет обновлена числом, которое указывает текущее значение счетчика, а также инкрементное изменение счетчика. Затем этот номер обновляет формулу INDEX в ячейке a1 для отображения следующего или предыдущего элемента.
Значение «Счетчик» не изменится, если текущее значение равно 1, а затем щелкнуть элемент управления вниз или, если текущее значение равно 20, а затем щелкнуть элемент управления вверх.
Пример полосы прокрутки
Чтобы добавить полосу прокрутки в Excel 2007 и более поздних версиях, откройте вкладку разработчик , нажмите кнопку Вставитьи выберите элемент полоса прокрутки в разделе элементы управления формы.
Чтобы добавить полосу прокрутки в Excel 2003 и более ранних версиях Excel, нажмите кнопку «вертикальная полоса прокрутки» на панели инструментов «формы».
Щелкните на листе место, где должен находиться левый верхний угол полосы прокрутки, а затем перетащите полосу прокрутки в то место, где должен находиться правый нижний угол полосы прокрутки. В этом примере создается полоса прокрутки, которая охватывает ячейки B2: B6 в высоту и является примерно одной четвертой ширины столбца.
Щелкните полосу прокрутки правой кнопкой мыши и выберите пункт Формат элемента управления.
Введите указанные ниже данные и нажмите кнопку ОК.
В поле Текущее значение введите 1.
Это значение инициализирует полосу прокрутки таким образом, чтобы формула указателя указывала на первый элемент в списке.
В поле минимальное значение введите 1.
Это значение ограничивает верхнюю часть полосы прокрутки до первого элемента в списке.
В поле Максимальное значение введите 20. Этот номер задает максимальное количество элементов в списке.
В поле Шаг изменения введите 1.
Это значение определяет, сколько чисел элемент управления «полоса прокрутки» увеличит текущее значение.
В диалоговом окне изменение страницы введите 5. Это значение определяет, сколько текущее значение будет изменяться при щелчке внутри полосы прокрутки на любой из сторон бегунка.
Чтобы ввести числовое значение в ячейку G1 (в зависимости от того, какой элемент выбран в списке), введите G1 в поле » связь с ячейкой».
Примечание: Флажок объемной заливки необязателен. Она добавляет трехмерный вид к полосе прокрутки.
Щелкните любую ячейку так, чтобы полоса прокрутки не выделена. Если щелкнуть элемент управления вверх или вниз на полосе прокрутки, ячейка G1 будет обновлена до числа, указывающего текущее значение полосы прокрутки плюс или минус добавочное изменение полосы прокрутки. Этот номер используется в формуле указателя в ячейке a1 для отображения элемента рядом с текущим элементом или перед ним. Вы также можете перетаскивать ползунок прокрутки, чтобы изменить значение или щелкнуть полосу прокрутки на обеих сторонах ползунка, чтобы увеличить его на 5 (значение изменения страницы). Полоса прокрутки не изменится, если текущее значение равно 1, и вы щелкните элемент управления вниз или, если текущее значение равно 20, а затем щелкните элемент управления вверх.
Элементы управления в ms excel
Лабораторная работа №10
АВТОМАТИЗАЦИЯ РАБОТЫ С КНИГОЙ В MS EXCEL
Цель работы: работа с макросами в MS Excel: создание, удаление, выполнение изменение, копирование макросов; использование элементов управления для автоматизации работы с книгой.
Если требуется периодическое выполнение задачи в Microsoft Excel, можно автоматизировать задачу с помощью макроса. Макрос – это последовательность команд и функций, хранящаяся в модуле Visual Basic. С точки зрения программирования – это подпрограмма. Ее можно выполнять всякий раз, когда необходимо выполнить данную задачу.
Модуль – совокупность описаний, инструкций и процедур, сохраненная под общим именем. Существуют модули двух типов: стандартный модуль и модуль класса.
1.1.1 Создание макроса. Макросы можно создавать с помощью средства для записи макросов или введя его код на языке Visual Basic для приложений в редакторе Visual Basic. Можно использовать и оба метода сразу: записать часть шагов, а затем расширить макрос с помощью программного кода.
Для записи макроса необходимо:
1) Установите Средний или Низкий уровень безопасности:
— выберите команду меню Сервис ? Параметры;
— откройте вкладку Безопасность;
— в группе Безопасность макросов нажмите кнопку Безопасность макросов;
— откройте вкладку Уровень безопасности, а затем выберите нужный уровень безопасности.
2) Выберите команду меню Сервис ? Макрос ? Начать запись (рис. 1.1).
3) В поле Имя макроса введите имя макроса (см. рис. 1.1):
— первым знаком имени макроса должна быть буква. Остальные знаки могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не допускаются пробелы; в качестве разделителей слов следует использовать знаки подчеркивания;
— не используйте имя макроса, являющееся ссылкой на ячейку, т.к. будет выдано соответствующее сообщение об ошибке.
4) Если этот макрос потребуется запускать нажатием сочетания клавиш на клавиатуре, введите букву в поле Сочетание клавиш (см. рис. 1.1). Допускается использование сочетаний Ctrl+буква (для строчных букв) или Ctrl+Shift+буква (для прописных букв), где буква – любая буквенная клавиша на клавиатуре. Нельзя использовать сочетания клавиш с цифрами и специальными знаками, такими как @ или #.
Примечание. Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Microsoft Excel на то время, пока открыта книга, содержащая данный макрос.
Рисунок 1.1 – Диалог Запись макроса
5) В поле Сохранить в выберите книгу, в которой требуется сохранить макрос. Если этот макрос требуется всегда при работе в Microsoft Excel, выберите вариант Личная книга макросов (см. рис. 1.1).
6) Если необходимо добавить описание макроса, введите его в поле Описание (см. рис. 1.1).
7) Нажмите кнопку OK.
Если макрос требуется выполнять относительно позиции активной ячейки, запишите его, используя относительные ссылки на ячейки. На панели инструментов Остановить запись нажмите кнопку Относительная ссылка, чтобы она осталась нажатой. Запись макроса будет продолжена с использованием относительных ссылок, пока не будет закрыт Microsoft Excel или не будет еще раз нажата кнопка Относительная ссылка, после чего она останется не нажатой.
9) Выполните макрокоманды, которые нужно записать.
10) На панели инструментов Остановить запись нажмите кнопку Остановить запись.
Чтобы запрограммировать макрос с помощью Visual Basic, необходимо:
1) Выберите команду меню Сервис ? Макрос ? Редактор Visual Basic (рис. 1.2).
2) В меню Insert выберите команду Module.
3) Введите или скопируйте программу в окно программы модуля.
4) Чтобы запустить данный макрос из окна модуля, нажмите кнопку F5.
5)Когда макрос будет создан, выберите команду меню File ? Close and Return to Microsoft Excel.
1.1.2 Удаление макроса.Для удаления макроса:
1) Откройте книгу, содержащую макрос, который требуется удалить.
2) В выберите команду меню Сервис ? Макрос ? Макросы.
3) В списке Находится в выберите Эта книга.
4) В списке Имя макроса выберите имя макроса, который нужно удалить.
5) Нажмите кнопку Удалить.
Рисунок 1.2 – Окно редактора Visual Basic
1.1.3 Выполнение макроса. Для выполнения макроса:
1) Установите Средний или Низкий уровень безопасности.
2) Откройте книгу, содержащую нужный макрос.
3) В меню Сервис выберите пункт Макрос, а затем выполните команду Макросы.
4) В поле Имя макроса введите имя того макроса, который требуется выполнить.
5) Выполните одно из следующих действий.
— Запустите макрос в книге Microsoft Excel: нажмите кнопку Выполнить; чтобы прервать выполнение, нажмите кнопку ESC.
— Выполните макрос из модуля Microsoft Visual Basic: нажмите кнопку Изменить; нажмите кнопку Run Sub/UserForm.
Совет: чтобы выполнить другой макрос, находясь в редакторе Visual Basic, выберите команду Macros в меню Tools. В поле Macro name введите имя того макроса, который нужно выполнить, а затем нажмите кнопку Run.
1.1.4 Изменение макроса. Для изменения макроса необходимо знакомство с редактором Visual Basic, который используется для написания и изменения макросов Microsoft Excel.
1) Установите Средний или Низкий уровень безопасности.
2) Выполните команду меню Сервис ? Макрос ? Макросы.
3) Введите имя макроса в поле Имя макроса.
4) Нажмите кнопку Изменить.
1.1.5 Копирование модуля макроса в другую книгу.Для этого:
1) Установите Средний уровень безопасности.
2) Откройте книгу, содержащую модуль, который требуется скопировать, и книгу, в которую его требуется скопировать.
3) Выберите команду меню Сервис ? Макрос ? Редактор Visual Basic.
4) Выберите команду меню Вид ? Окно проекта.
5) Перетащите требуемый модуль в конечную книгу.
Элементы управления в MS Excel
Элементы управления представляют собой графические объекты, помещаемые в форму для отображения или ввода данных, выполнения действий или облегчения чтения формы. Данные объекты включают надписи, поля со списками, переключатели и флажки, кнопки и многое другое. Элементы управления позволяют пользователю запускать макросы или веб-сценарии путем нажатия, установки или выбора соответствующих элементов управления.
Сценарий – тип компьютерных программ, используемый для выполнения на веб-страницах таких задач, как увеличение счетчика числа посещений при появлении каждого нового посетителя. Существует несколько языков для написания веб-сценариев. Сценарии выполняются без предварительной компиляции.
В Microsoft Excel существует два вида элементов управления. Элементы управления ActiveX подходят в большинстве случаев, и работают с макросами Visual Basic для приложений (VBA) и веб-сценариями.
Элементы управления ActiveX Элемент ActiveX. Элемент управления (такой как флажок или кнопка), служащий для выбора параметров либо для запуска макроса или сценария, автоматизирующего выполнение задачи. Макросы для таких элементов управления можно создавать в редакторе Visual Basic для приложений, а сценарии в редакторе сценариев.
1.2.1 Виды элементов управления. Чтобы определить, является ли элемент элементом управления ActiveX или элементом панели инструментов Формы, щелкните его правой кнопкой мыши. Если контекстное меню не появляется или содержит команду Свойства, значит это элемент ActiveX. Если контекстное меню содержит команду Назначить макрос, значит это элемент управления с панели инструментов Формы.
Чтобы задать свойства для имеющегося элемента управления, щелкните его правой кнопкой мыши, выберите команду Формат объекта, а затем откройте вкладку Элемент управления. Кнопки и надписи не имеют свойств.
В табл. 1.1 и табл. 1.2 приведены виды элементов управления ActiveX и панели инструментов Формы.
Применение элементов управления Формы в Excel
Элементы управления – графические объекты, размещаемые на листе для отображения или ввода данных, выполнения действий или облегчения восприятия текста.
В Excel имеются два типа элементов управления:
— элементы Active X панели инструментов Элементы управления). Макросы для управления их работой создаются в редакторе VBA;
— элементы управления панели Формы. Макросы для этих элементов создаются с помощью средства записи макросов и не требуют обязательного знания VBA.
Перечень элементов управления панели инструментов Форма представлен в таблице «Элементы управления Excel».
Свойства большинства элементов можно изменять. Действия, производимые с помощью объекта управления, задаются в диалоговом окне Формат элемента управления на вкладке Элемент управления (это окно вызывается командой Формат объекта из контекстного меню). У элементов управления Кнопка и Надпись можно изменять только свойства, касающиеся формата.
С помощью элементов форм в Excel можно не просто заносить данные в анкеты и бланки, но и производить анализ введенных данных.
Каждый элемент формы (кроме элементов Кнопка и Надпись) связан с ячейкой. Значение связанной ячейки изменяется в зависимости от состояния элемента или действия с элементом. Для работы элементов Список, Поле со списком, Полоса прокрутки и Счетчик задаются диапазоны ячеек.
Содержание работы
Задания выполняйте на отдельных листах созданной Вами книги.
Дата добавления: 2015-09-07 ; просмотров: 748 . Нарушение авторских прав
В чем разница между «элементами управления формой» и «элементом управления ActiveX» в Excel 2010?
используя Microsoft Excel 2010, я заметил два вида элементов управления, которые могут быть вставлены в документ:Управления и Элементы Управления ActiveX.
в чем разница между ними?
Google полон информации об этом. Как сказал Ганс Пассан, управления встроены в Excel, тогда как ActiveX элементы управления загружаются отдельно.
как правило, вы будете использовать Forms элементы управления, они проще. ActiveX элементы управления обеспечивают более гибкую конструкцию и должны использоваться, когда работа просто не может быть выполнена с помощью basic Forms управление.
многие компьютеры пользователя по по умолчанию не доверяю ActiveX , и он будет отключен; иногда это необходимо вручную добавить в центр управления безопасностью. ActiveX это технология на базе microsoft и, насколько мне известно, не поддерживается на Mac. Это то, что вам также придется рассмотреть, если вы (или кто-то, кому Вы предоставляете книгу) решите использовать его на Mac.
одним из основных отличий, которые важно знать, является то, что элементы управления ActiveX отображаются как объекты, которые можно использовать в коде — попробуйте вставить элемент управления ActiveX в рабочий лист, откройте редактор VBA (ALT + F11), и вы сможете получить доступ к элементу управления программно. Вы не можете сделать это с помощью элементов управления form (макросы должны быть явно назначены каждому элементу управления), но элементы управления form немного проще в использовании. Если вы просто делаете что-то простое, не имеет значения, что вы используете но для более продвинутых скриптов ActiveX имеет более широкие возможности.
ActiveX также более настраиваемый.
будьте осторожны, в некоторых случаях щелчок по элементу управления формой или активному элементу управления X даст два разных результата для одного и того же макроса, чего не должно быть. Я нахожу Active X более надежным.
также стоит отметить, что элементы управления ActiveX работают только в Windows, тогда как элементы управления Form будут работать как в Windows, так и в macOS-версиях Excel.
Элементы управления формы (Поле со списком, Флажок, Счетчик и др.) помогают быстро менять данные на листе в определенном диапазоне, включать и выключать опции, делать выбор и пр. В принципе, без них можно обойтись, но они делают управление данными на листе более наглядным и уменьшают вероятность ввода некорректных данных.
Для вставки элементов управления на лист необходимо отобразить вкладку
Разработчик.
-
В MS EXCEL 2007 это можно сделать через меню
.
-
В MS EXCEL 2010 это можно сделать так: Откройте вкладку
Файл
; Нажмите кнопку
Параметры
; Нажмите кнопку
Настроить ленту
; Выберите команду
Настройка ленты и в разделе Основные вкладки
установите флажок
Разработчик
.
Теперь вставить элемент управления можно через меню:
.
Обратите внимание, что в этом меню можно вставить Элементы ActiveX, которые расположены ниже интересующих нас Элементов управления формы. У обоих типов есть одни и те же элементы Кнопка, Список, Флажок и т.п. Разница между ними следующая: чтобы использовать Элементы ActiveX необходимо использовать VBA, а Элементы управления формы можно напрямую привязать к ячейке на листе.
Для тех, кто не ранее не работал с Элементами управления формы, советуем подробно ознакомиться с ними в следующих статьях:
-
Флажок
;
-
Счетчик
;
-
Полоса прокрутки
;
-
Переключатель
;
-
Список
;
-
Поле со списком
.
В этой статье рассмотрим более сложный пример совместного использования элементов управления и
Условного форматирования
.
Пример
Разберем конкретный пример применения сразу нескольких Элементов управления. В файле
примера
с помощью элементов управления показано как пользователь может отредактировать значения в таблице (диапазон
F9:K12
).
С помощью одного из 3-х элементов управления
Поле со списком, Список
и
Счетчик
,
пользователь может выбрать столбец таблицы (год)
.
Нужный элемент управления выбирается с помощью группы
Переключателей
. Название выбранного элемента подсвечивается серым цветом (см.
A8:B8
на рис. выше). Выбранный год выделяется в таблице
Условным форматированием
темно серым цветом (см.
H9
:H12
на рис. выше). Отображение этого выделения регулируется
Флажком
(фон флажка — красный).
Полосами прокрутки
можно редактировать
Цену
и
Количество
в выбранном году, но только в определенном диапазоне. Теперь – подробнее.
Переключатели
На листе использовано 3
Переключателя
объединенных в
Группу
. Каждому
Переключателю
соответствует определенный элемент управления:
Поле со списком, Список, Счетчик
.
Для объединения Элементов в группу помещаем на лист Элемент управления
Группа
(через меню
). В рамках группы создаем 3 переключателя (также через меню
) и связываем их все с одной ячейкой
С2
(выделив элемент управления, правой клавишей вызываем контекстное меню,
Формат объекта
…, вкладка
Элемент управления
).
Удерживая клавишу
CTRL
выделяем 3 переключателя и элемент
Группа
, вызываем правой клавишей мыши контекстное меню и выбираем
. Теперь при выборе одного из трех
Переключателей
в
Группе
, в ячейке
С2
будет выводиться значение 1, 2 или 3.
Поле со списком
Теперь вставим элемент управления
Поле со списком
. Вставить элемент можно через меню:
. В ячейках столбца
М
введем несколько значений лет:
2009, 2010, 2011, 2012, 2013.
Эти значения будут использованы в элементе
Поле со списком
.
Создадим
Именованный диапазон
Список
.
-
выделяем диапазон
М9:М12
;
-
нажимаем
;
-
в поле
Имя
вводим
Список
.
Теперь свяжем элемент управления с данными на листе. Для этого:
-
выделите элемент управления
Поле со списком
; -
правой клавишей вызовите его контекстное меню, затем
Формат объекта…
, вкладка
Элемент управления
; -
в поле
Формировать список по диапазону
вводим
Список
(вместо ссылки на ячейку мы ввели ссылку на определенноеИмя
!). Конечно, вместо имени можно было указать просто ссылку на диапазон;
-
свяжем элемент с ячейкой
$C$8
. В этой ячейке будет выводится порядковый номер выбранного элемента списка, т.е. если выберем
2009
, то выведется 1, т.к. это первый элемент в списке. Для дальнейших целей нам проще использовать именно год, а не его порядковый номер. Для этого в ячейку
D8
введем формулу
=C8+2008
.
Список
Вставляем на лист элемент
Список
. Аналогично предыдущему элементу связываем его с ячейкой
$C$13
и формируем список на основе того же
Именованного диапазона
Список
. В ячейку
D13
введем формулу
=C13+2008
.
Счётчик
Вставляем на лист элемент
Счетчик
. Определяем минимальное значение
2009
, максимальное –
2013
, шаг
1
. Связываем элемент с ячейкой
$C$17
. В
D17
введем формулу
=С17
, т.к. элемент
Счетчик
в нашем случае возвращает значение года.
Чтобы определить значение какого элемента (
поле со списком, список
или
счетчик
) является активным в настоящий момент, в ячейке
E9
введем формулу:
=ЕСЛИ(C2=1;D8;ЕСЛИ(C2=2;D13;D17))
Как мы помним, значение в ячейке
С2
определяется
Группой переключателей
.
Полоса прокрутки
Вставляем на лист элемент
Полоса прокрутки
. Этим элементом мы будем изменять ячейку на пересечении строки
Количество
(строка 10) и столбца выбранного года. Значения ячейки будет меняться в диапазоне от 0 до 1000. Но как определить эту ячейку?
Создадим
Именованную формулу
СмещГода
для определения позиции выбранного года в диапазоне лет
G
9:
K
9
. Нажимаем
, в поле
Имя
вводим
СмещГода
, в поле диапазон вводим формулу
=ПОИСКПОЗ($E$9; $G$9:$K$9;0)
Если выбран
2009
, то формула вернет 1.
Для определения ячейки строки
Количество
, соответствующую выбранному году используем формулу
=СМЕЩ($F$10;0;СмещГода)
. Формула вернет диапазон, состоящий из одной ячейки.
В поле
Связь с ячейкой
элемента
Полоса прокрутки
нельзя ввести формулу, но можно, как мы уже видели, ввести
Имя
. Создадим
Именованную формулу
Количество
, в поле
Диапазон
укажем формулу
=СМЕЩ($F$10;0;СмещГода)
. Теперь в поле
Связь с ячейкой
элемента полоса прокрутки введите
Количество
.
Аналогичные манипуляции проделайте с полосой прокрутки для
Цены
. Для этого необходимо создать
Именованную формулу
Цена
, где в поле
Диапазон
указать формулу
=СМЕЩ($F$11;0;СмещГода)
.
Флажок
При выборе пользователем текущего года, в таблице с данными (
G9:K12
) соответствующий столбец будет закрашиваться серым фоном. Для выделения столбца выбранного года используем
Условное форматирование
.
Сначала вставим на лист элемент
Флажок
. Этим элементом мы будем включать и выключать выделение в таблице столбца выбранного года. Элемент свяжите с ячейкой
$G$2
. Если флажок снят, то в этой ячейке будет ЛОЖЬ (этому значению соответствует 0), если установлен, то ИСТИНА (этому значению соответствует 1).
Для настройки
Условного форматирования
выделим диапазон
G9:K12
. Так как формула в Условном форматировании будет содержать
относительную ссылку
, то убедимся, что после выделения диапазона активной ячейкой является G9 (т.е. диапазон надо выделять начиная именно с нее. Подсказкой служит поле
Имя
, находящееся слева от
Строки формул
. После выделения диапазона оно должно содержать
G
9
).
-
вызовите инструмент
Условное форматирование
(
);
-
выберите
Использовать формулу
для определения форматируемых ячеек; -
в поле «
Форматировать значения, для которых следующая формула является истинной
» введите
=И(СТОЛБЕЦ(G9)=СмещГода+6;$G$2)
Формула примет значение ИСТИНА, когда выполнится одновременно 2 условия: -
значение выражения (
СмещГода
(изменяется от 1 до 5 (т.е. от 2009 до 2013 года) + 6) совпадет с номером текущего столбца (7, т.е. 2009 год); -
Флажок
Условное форматирование
установлен. - выберите требуемый формат, например, серый цвет заливки;
- нажмите ОК.
Тестируем
-
убедимся, что флажок
Условное форматирование
установлен; -
выберем переключатель
Список
; -
в элементе управления
Список
выберем 2010; -
убедимся, что столбец
2010
выделен серым;
Полосой прокрутки
изменим количество в столбце 2010.
Результат показан на рисунке.
К сожалению, у элементов управления формы
Флажок, Поле со списком
и
Список
нет возможности отформатировать отображаемый шрифт. Зато это можно сделать у элементов ActiveX (
). Правда, для работы с этими элементами требуется писать программу на VBA.
В Microsoft Excel, Form Controls, это полезно для выбора элементов в списке диалогового листа. Элементы управления формой упрощают взаимодействие пользователей с данными ячеек, которые они создали. На ваш рабочий лист будет добавлено несколько форм контроля; это метка, поле группы, кнопка флажка, кнопка выбора, поле списка, поле со списком, полоса прокрутки и кнопка вращения.
Типы элементов управления формой
- Метка: метки показывают описательный текст, такой как изображения, заголовки и подпись, а также определяют цель ячейки.
- Групповое поле: тесно связанное содержимое сгруппировано с дополнительной меткой.
- Кнопка: этот элемент управления запускает макрос и выполняет действие, когда пользователь нажимает на него.
- Флажок: это дает пользователю возможность включать и выключать значение, которое подразумевает противоположный выбор. Вы можете установить несколько флажков.
- Кнопка параметров: как и флажок, она также дает вам возможность включать и выключать значение, указывающее на противоположный выбор. Единственное отличие состоит в том, что кнопка выбора позволяет пользователю выбрать только один вариант, в отличие от флажка.
- Список: отображает список текстовых элементов, из которых пользователь может выбирать.
- Поле со списком: это текстовое поле со списком для создания раскрывающегося списка. Поле со списком позволяет пользователю щелкнуть стрелку раскрывающегося списка для отображения списка.
- Полоса прокрутки: прокрутите диапазон значений с помощью клавиш со стрелками полосы прокрутки или перетащите или перетащите полосу прокрутки.
- Кнопка вращения: увеличивает или уменьшает такие значения, как числа, даты или время. Чтобы увеличить значение, щелкните стрелку вверх; для уменьшения значения щелкните стрелку вниз.
В этой статье мы обсудим следующие темы:
- Как найти элементы управления формы
- Как создать этикетку
- Как создать кнопку
- Как создать флажок
- Как создать кнопку Option
- Как создать список
- Как создать поле со списком
- Как создать полосу прокрутки
- Как создать кнопку вращения
- Как создать групповой ящик
1]Как найти элементы управления формы
Щелкните правой кнопкой мыши на стандартной панели инструментов и выберите «Настроить ленту». Появится диалоговое окно с названием Excel Option. В левой части диалогового окна установите флажок рядом с надписью «Разработчик», затем нажмите «ОК». В строке меню вы увидите вкладку Разработчик.
2]Как создать этикетку
В окне разработчика щелкните инструмент «Вставка», вы увидите список форм управления. Щелкните «Ярлык». Вы увидите крестообразный курсор; используйте его для рисования метки, затем щелкните правой кнопкой мыши и выберите «Редактировать текст», чтобы ввести текст в метку.
3]Как создать кнопку
Перейдите к инструменту «Вставка» в группе элементов управления. Выберите инструмент «Кнопка». Вы увидите курсор в форме креста; перетащите его, чтобы создать кнопку. Появится диалоговое окно «Назначить макрос». Щелкните ОК. Вы увидите кнопку на листе Excel.
4]Как создать флажок
Перейдите к инструменту «Вставить» и выберите инструмент «Флажок». Появится курсор в форме креста и обозначит ваш флажок. Теперь у вас есть флажок. Чтобы переименовать, щелкните правой кнопкой мыши флажок и выберите «Изменить текст».
5]Как создать кнопку выбора
На панели инструментов «Вставить» нажмите кнопку выбора. Будет курсор в форме креста; возьмите курсор в форме креста и нарисуйте кнопку выбора. Чтобы ввести текст в кнопку выбора, щелкните правой кнопкой мыши или дважды коснитесь кнопки и введите текст или щелкните правой кнопкой мыши и выберите «Изменить текст».
6]Как создать список
Перейдите к инструменту «Вставка», выберите «Список»; крестообразный курсор появится в книге, и используйте крестообразный курсор, чтобы нарисовать список. Чтобы ввести данные в поле, щелкните поле правой кнопкой мыши и выберите «Управление форматом». Появится диалоговое окно «Управление форматом», нажмите «Управление», щелкните элемент «Диапазон ввода», затем перейдите к ячейке, которая должна быть в списке. , щелкните по нему и перетащите вниз. Выбранный диапазон ввода находится в поле «Диапазон ввода» в диалоговом окне. Теперь щелкните запись «Ссылка на ячейку» и выберите ячейку, в которую нужно вставить ссылку на ячейку.
Ссылка на ячейку отобразит все данные, которые вы щелкнули в окне списка; строка будет отображаться для каждого выбранного значения. Тогда хорошо. Если вы хотите, чтобы в поле списка отображались строки для каждого числа, выбранного вами в поле, щелкните диапазон выбранных ячеек, щелкните любые данные в списке и отобразите, в какой строке находятся данные. Если вы хотите отображать только данные списка, используйте эту формулу = ИНДЕКС (B2: B7, J2, 0). B2: B7 — это диапазон выбранных вами ячеек, J2 — это строка, которую вы отображали ранее. Когда вы нажимаете Enter, вы увидите исходный номер из списка, когда вы нажмете на любой номер в списке.
7]Как создать поле со списком
Щелкните инструмент «Вставка» и выберите «Поле со списком». Используйте курсор в форме креста, чтобы нарисовать поле со списком, щелкните правой кнопкой мыши поле со списком, выберите элементы управления формы, щелкните диапазон ввода, затем перейдите к ячейке, в которой должен находиться список, и перетащите ее вниз, щелкните в ячейке Свяжите и выберите ячейку, в которую вы хотите поместить ссылку на ячейку. В этой статье мы помещаем его поверх нарисованного поля со списком. Тогда хорошо. Теперь у вас есть функциональное поле со списком в вашей книге.
8]Как создать полосу прокрутки
Нажмите «Вставить», выберите «Полоса прокрутки», нарисуйте полосу прокрутки на листе, затем щелкните правой кнопкой мыши, выберите «Элементы управления формы» и нажмите «ОК». Затем щелкните правой кнопкой мыши полосу прокрутки и выберите «Управление формой». Появится диалоговое окно управления формой. Щелкните «Элементы управления», чтобы внести изменения; выберите ссылку на ячейку, где вы хотите, чтобы элементы управления были взяты. В этой статье мы выбираем ячейку $ E $ 2. ХОРОШО. Будет создана полоса прокрутки. Когда вы нажимаете на стрелку влево полосы прокрутки, число уменьшается, когда вы нажимаете стрелку вправо на полосе прокрутки, число увеличивается.
9]Как создать кнопку вращения
Нажмите «Вставить», затем нажмите кнопку «Вращение». Используйте курсор в форме креста, который появляется на листе, чтобы нарисовать кнопку вращения. Затем щелкните правой кнопкой мыши и выберите «Элементы управления формой»; выберите вкладку «Управление» в диалоговом окне «Управление формой», внесите любые изменения, если хотите, выберите ссылку на ячейку, щелкнув запись «Ссылка на ячейку», затем щелкните ячейку, она появится в поле «Ссылка на ячейку», затем нажмите «ОК». Теперь у нас есть кнопка вращения. Щелкните кнопку со стрелкой вверх; число увеличивается; нажмите кнопку со стрелкой вниз стрелка Уменьшается.
10]Как создать групповой ящик
Нажмите «Вставить», выберите «Групповое поле», используйте курсор в форме креста, чтобы нарисовать групповое поле. Чтобы ввести данные в групповое поле, щелкните правой кнопкой мыши, выберите «Редактировать текст» или дважды коснитесь прямо за пределами группового поля.
Надеюсь, это поможет.
Теперь прочтите: Как добавить или изменить тему для книги в Microsoft Excel.
.
Поле со списком — элемент управления формы в MS EXCEL
Смотрите также не понимаю как, Управляйте этими свойствами.не отображается, на Если вкладка данных из формы, смогли сделать этоПосле этого переходим к будем вводить данные.и применять один и нужными и в строкой в табличныйВ3 углы прямоугольника илиПоле со списком представляет дело даже не и получите желаемое…Щелкните правой кнопкой мыши
вкладкеРазработчик в таблицу.
- «5» самостоятельно, давайте разберем, левой нижней области Выделяем первую ячейку,«Сумма» тот же шаблон,
- остальные поля, после диапазон. Форма может). на маленькие кружки собой сочетание текстового в том функциями Лучше такие примочки поле со спискомФайлне отображается, наПосле того, как областьозначают номера столбцов из чего данный окна под названием
где уже установлено. Они будут отсутствовать. как это возможно
чего жмем на выступать как вНеобходимо помнить, что Поле на границе, то поля и раскрывающегося или макросами, а делать на UserForm, и выберите пунктвыберите вкладке обведена, отпускаем клавишу на листе Excel, код состоит, что«Properties» в нашем случае Нумерация первого из при использовании стандартного кнопку
виде отдельного встроенного со списком возвращает можно изменить его списка. Поле со в том как на листе ВамСвойства
ПараметрыФайл мыши. Затем автоматически
Вставка Поля со списком
соответствующих колонкам в нем следует. Тут расположены настройки наименование них будет происходить
варианта.«Добавить» инструмента Excel, так в связанную ячейку
размер.
списком компактнее обычного
вообще сделать неактивным будет сложнее управлять. Откройте вкладку>выберите запускается окно назначения«Наименование товара»
Выделение Поля со списком
заменить, а что выделенного листа. В«Картофель» при помощи макроса,Как и в предыдущем. и располагаться непосредственно
Перемещение Поля со списком и изменение его размеров
не сам элемент,Заполним наше Поле со списка, однако для элемент. Пытался сделать формами. Но ничегоAlphabeticНастроить лентуПараметры макроса объекту. Если, менять не нужно. поле. Далее переходим в а расчет значений способе, прежде всего,После этого, как видим,
на листе в а его позицию списком названиями месяцев. того чтобы отобразить макрос, чтоб на невозможного нет…
Заполняем Поле со списком элементами
(По алфавиту) и. В списке> в вашей книге«Количество»Итак, первая строка:«(Name)»
поле наименования диапазонов. во втором будет нужно составить шапку в первую строку виде его диапазона, в списке (для Для начала разместим список элементов, пользователь этом месте полупрозрачныйVovaK измените нужные свойства.Основные вкладкиНастроить ленту применяется несколько макросов,
,Sub DataEntryForm()следует заменить кириллическое Оно расположено в
производиться путем применения будущей таблицы на таблицы были автоматически если она создана месяца Май на названия месяцев на должен щелкнуть стрелку. объект появлялся и: Вот пример. ПомечаетеВот как можно настроитьустановите флажок для
. В списке то выбираем из
«Цена»«DataEntryForm» наименование ( левой части окна формулы умножения количества листе. Она будет перенесены введенные значения, самим пользователем. картинке выше Поле листе в диапазоне
Связываем Поле со списком с ячейкой
Поле со списком блокировал собой возможность имя красным и свойства поля со вкладкиОсновные вкладки списка название того,и— это название«Лист1» Excel на том на цену. состоять из пяти а в формеТеперь давайте рассмотрим, как со списком вернулоF2:F13 следует использовать, когда нажатия на список, второй список будет
списком на этомРазработчикустановите флажок для который мы выше«Сумма» самого макроса. Вы) на название, написанное
же уровне, что
Второй столбец объекта ввода ячеек с именами: произошел переход к пользоваться этими двумя значение 5). Поэтому,. требуется обеспечить возможность но он никак не активным. рисунке:и нажмите кнопку вкладки создавали. У нас. Поэтому, если в можете оставить его на латинице. Название и строка формул.
Использование Поля со списком
данных оставим пока«№ п/п» следующему блоку полей, видами инструментов. чтобы вывести выбранныйЧтобы заполнить Поле со ввести в список не уходит наx2FarНастраиваемое свойствоОКРазработчик он называется вашем случае таблица как есть, а можно дать любое, Вводим туда произвольное что пустым. Непосредственно, который соответствуют второйПрежде всего, давайте узнаем,
месяц, потребуется формула списком, кликните на или выбрать в задний план.: Спасибо, понятно. ЭтоДействие.и нажмите кнопку«DataEntryForm» сдвинута, то нужно можете заменить на которое вам будет название. Это может в него позже«Наименование товара»
строке табличного массива. как применять встроенную =ИНДЕКС(F2:F13;B1) (ячейка него ПРАВОЙ клавишей нем только один
VovaK элементы управления ActiveX,Цвет заливкиВыберите тип поля со
ОК. Но в данном указать соответствующие номера любое другое, которое удобнее, главное, чтобы
Имя Элемента управления
быть любое наименование будут вводиться значения,Заполняем окно инструмента теми форму для вводаВ2 мыши, в появившемся элемент. В этом: У всех элементов а не управленияЩелкните свойство списком, которое нужно. случае макрос один, столбцов. Если столбцов соответствует общим правилам в нем были
на латинице, в для заполнения строк«Количество» значениями, которые хотим данных Excel.). контекстном меню выберите Формат элементе управления отображается управления есть свойства формы (с нейBackColor
Прячем Поле со списком на листе
добавить:В разделе
поэтому просто выбираем больше, то по создания наименований макросов исключительно символы латиницы котором нет пробелов,
основного табличного диапазона., видеть во второйНужно отметить, что по
excel2.ru
Элементы управления формы. Изучаем MS Excel в примерах
Формула =ИНДЕКС(G2:G13;B1) позволяет вывести объекта… Появится диалоговое окно, текущее значение. Этот .Visible и .Enabled. по видимому нельзя(Цвет фона), щелкнитев разделеЭлементы управления формы его и жмем аналогии нужно добавить (отсутствие пробелов, использование или цифры и но лучше все-такиПосле этого создаем ещё«Цена» строке табличной области,
excel2.ru
Формы ввода данных в Microsoft Excel
умолчанию значок, который объем продаж для выберите вкладку Элемент элемент имеет много Первое делает элемент ничего сделать) =))) стрелку вниз, откройтеЭлементы управления формывыберите элемент управления на кнопку её строки в только букв латинского отсутствовали другие знаки использовать названия близкие одну небольшую таблицу., и снова щелкаем её запускает, скрыт выбранного месяца (ячейка управления (если такая
общего с элементом невидимым, второе неактивным.
Применение инструментов заполнения
VovaK вкладкувыберите элемент управленияСписок (элемент управления формы)«OK» код, если меньше алфавита и т.д.). или пробелы. Именно к решаемым данным Она будет состоять«Сумма» по кнопке и его нужноВ3 вкладка отсутствует, то Список. Управляйте этими свойствами: На самом делеPallet
Поле со списком (элемент.внизу окна.
Способ 1: встроенный объект для ввода данных Excel
– то убрать Изменение наименования ни с этим именем элементом задачам. Поэтому
- из одного столбца.«Добавить» активировать. Для этого). Вы вставили ЭлементДля вставки элементов управления и получите желаемое… формы это те(Палитра) и выберите управления формы)
- Щелкните ячейку, в которойПосле этого можно переименовать лишние. на что не будет работать макрос. первую ячейку, в и в нейДалее нужно из нашего. переходим во вкладкуУсловное форматирование использовано для ActiveX, а не на лист необходимо
Лучше такие примочки же элементы управления, цвет.; нужно создать список. кнопку, как выВ строке производится умножение повлияет. Пусть в нашем которой содержится название разместится список товаров, табличного массива сделатьКак видим, значения второй
- «Файл» отображения в таблице Элемент управления формы, отобразить вкладку Разработчик. делать на UserForm, но оформленные через
- Тип, начертание или размерИЛИ:Нажмите кнопку захотите, просто выделив количества товара наВезде, где встречается в случае данным названием товара, назовем которые мы будем
- так называемую «умную» строчки тоже были, а затем щелкаем выбранного месяца и об этом см.В MS EXCEL 2007 на листе Вам меню (для пользователей, шрифтав разделеСвойства её текущее название. его цену: коде слово будет«Name» выводить во вторую таблицу, с возможностью добавлены, причем нам по пункту его продаж.
- выше). это можно сделать через будет сложнее управлять которые не знакомыЩелкните свойствоЭлементы ActiveXи на вкладке
- В нашем случае, например,.Cells(nextRow, 5).Value = Producty.Range(«Volum»).Value«Producty»«Producty». Пишем данное наименование колонку основной таблицы. автоматического добавления строчек даже не пришлось
- «Параметры»Другой пример можно посмотретьВведите в поле Формировать меню Кнопка офис/ Параметры формами. Но ничего с VBA). ДляFontвыберите элемент управленияЭлемент управления логично будет дать * Producty.Range(«Price»).Value
- вы должны его, хотя вы можете в поле и Для наглядности ячейку при заполнении соседних переставлять курсор в.
- в статье Выпадающий список по диапазону Excel/ Основные/ Показывать невозможного нет… Вашей задачи конечно(Шрифт), нажмите кнопкуПоле со списком (элементзадайте необходимые свойства: ей имя
- Результат, как видим из заменить на то выбрать и любое жмем на клавишу с заголовком данного диапазонов или ячеек самой таблице.В открывшемся окне параметров
- список в MS ссылку на вышеуказанный вкладку Разработчик наVovaK не подходят, так…
- ActiveX)В поле«Добавить» синтаксиса записи, будет
- наименование, которое ранее другое, соответствующее условиям,Enter перечня ( данными. Для этогоТаким образом, заполняем табличный Эксель перемещаемся в EXCEL на основе диапазон. ленте.
- : Вот пример. Помечаете как и неи выберите тип,.Формировать список по диапазону. Переименовываем и кликаем выводиться в пятый присвоили для своего которые были описанына клавиатуре.«Список товаров»
- выделяем шапку и, массив всеми значениями, раздел
- элемента управления формы.ПримечаниеВ MS EXCEL 2010 имя красным и предназначены для этого. размер или начертаниеЩелкните ячейку, в которуювведите диапазон ячеек, мышкой по любой столбец листа Excel. листа в поле
- выше.Точно таким же образом) можно залить цветом. находясь во вкладке которые хотим в«Панель быстрого доступа»У каждого Элемента управления. Вместо указания ссылку это можно сделать так:
- второй список будет Огромное спасибо MicroSofty, шрифта. нужно добавить поле содержащий список значений. свободной ячейке листа.В этом выражении выполняется«(Name)»В поле присваиваем ячейке, в
- Затем выделяем первую пустую«Главная» неё ввести.. Большую часть окна
Способ 2: создание пользовательской формы
есть имя. Чтобы на диапазон можно Откройте вкладку не активным. что оставили возможностьЦвет шрифта со списком, иПримечание:Итак, наша форма полностью автоматическая нумерация строк:области«Name» которую будем вводить ячейку объекта ввода, жмем на кнопкуКроме того, при желании, занимает обширная область его узнать, нужно указать Имя диапазонаФайлx2Far конструировать формы пользователямЩелкните свойство нарисуйте его с Если нужно отобразить в готова. Проверим, какIf nextRow >«Properties»тоже можно заменить количество товара, имя значений. Переходим во
- «Форматировать как таблицу» можно производить навигацию настроек. В левой выделить Поле со (т.е. ссылку на Именованный; Нажмите кнопку : Спасибо, понятно. Это самостоятельно (меню ЭлементыForeColor помощью перетаскивания. списке больше элементов, она работает. Вводим 2 Thenредактора макросов. Естественно, название на более«Volum» вкладку
- в блоке инструментов по ранее введенным её части находятся списком, в Поле имя будет диапазон). Подробнее можноПараметры элементы управления ActiveX, управления).(Цвет текста), щелкнитеСоветы: можно изменить размер в её поляRange(«A2»).Select это нужно делать удобное. Но это.«Данные»«Стили» значениям с помощью инструменты, которые могут отображено его имя. посмотреть в статье; Нажмите кнопку а не управления
- x2Far стрелку вниз, откройте шрифта для текста. необходимые значения иSelection.AutoFill Destination:=Range(«A2:A» & только в том не обязательно. ПриА ячейке с ценой. Щелкаем по значку. После этого открывается кнопок быть добавлены на Чтобы изменить имя Выпадающий список вНастроить ленту
- формы (с ней: Блин битый час вкладкуЧтобы изменить размер поля,В поле жмем на кнопку nextRow) случае, если вы этом допускается использование –«Проверка данных» список доступных вариантов«Назад» панель быстрого доступа, Поля со списком MS EXCEL на; Выберите команду по видимому нельзя сижу уже, ничегоPallet
наведите указатель мышиСвязь с ячейкой«Добавить»Range(«A2:A» & nextRow).Select назвали лист по-другому. пробелов, кириллицы и«Price», который размещен на стилей. На функционали а в правой — введите в Поле основе элемента управленияНастройка ленты и в ничего сделать) =))) не получается.(Палитра) и выберите на один из
- введите ссылку на.End IfТеперь рассмотрим такую строку: любых других знаков.
- . ленте в блоке выбор одного из«Далее» – уже присутствующие. имя новое имя формы. разделе Основные вкладкиVovaKПрикладываю файл с цвет. маркеров изменения размера ячейку.Как видим, значения перемещеныВсе значенияnextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, В отличие отПосле этого точно таким инструментов них никак неили вертикальной полосыВ поле и нажмите клавишу
Нажмите ОК, Поле со установите флажок : На самом деле работой которую делаю.Связь с ячейкой для и перетащите границуСовет:
- в таблицу, строке«A2» 0).Row предыдущего параметра, который же образом даем«Работа с данными» повлияет, поэтому выбираем прокрутки.«Выбрать команды из»ENTER списком заполнится элементами.Разработчик формы это теВ общем на
- отображения значения, выбранного элемента управления до Выбираемая ячейка содержит число, автоматически присвоен номер,означают адрес первойЦифра задает наименование листа название всему диапазону. просто тот вариант,При необходимости можно откорректироватьустанавливаем значение
- . Также имя можноТеперь пользователь может выбрать. же элементы управления, первом листе (осаго) в списке достижения нужной высоты связанное с элементом,
- сумма посчитана, поля ячейки, где будет«2» для программы, данный
- из вышеуказанных трехЗапускается окно проверки вводимых который считаем более любое значение в«Команды не на ленте» изменить в Области выделения (Главная требуемый месяц, ноТеперь вставить элемент управления но оформленные через
- я сделал табличкуЩелкните свойство и ширины. выбранным в списке. формы очищены. производиться нумерация, ав данной строчке параметр присваивает название ячеек. Прежде всего, данных. Кликаем по подходящим. табличном массиве, изменив. Далее из списка / Редактирование/ Найти
- Поле со списком можно через меню: Разработчик/ меню (для пользователей, (это до тогоLinkedCellЧтобы переместить поле со Его можно использоватьПовторно заполняем форму и координаты « означает второй столбец
- листу, видимое пользователю выделим, а потом полюЗатем открывается небольшое окошко его в форме. команд, расположенного в и выделить/ Область пока не способно Элементы управления/ Вставить. которые не знакомы как я задал(Связанная ячейка). списком на листе, в формуле для жмем на кнопкуA» листа. Именно в на панели ярлыков. дадим ему наименование
- «Тип данных» форматирования таблицы. В Чтобы изменения отобразились алфавитном порядке, находим выделения).
- вернуть выбранное значениеОбратите внимание, что в с VBA). Для тут вопрос)Связывание поля со списком выделите его и получения фактического элемента«Добавить»— адрес всего этом столбце находитсяКак видим, после этого в специальном поле., в котором по нем указан диапазон, на листе, после и выделяем позициюЗачем нам знать имя в ячейку. О этом меню можно Вашей задачи конечноТам выбираются элементы и списка элементов перетащите в нужное из входного диапазона.. столбца с нумерацией. колонка автоматически изменится и Пусть это будет умолчанию установлен параметр который мы ранее внесения их в«Форма…» элемента управления? Если том, как связать
- также вставить Элементы не подходят, так из списка иЩелкните поле рядом со место.В группе
- Как видим, и вторая Проверьте, где именно«Наименование товара» наименование
- имя«Любое значение» выделили, то есть, соответствующий блок инструмента,. Затем жмем на Вы не планируете Поле со списком ActiveX, которые расположены как и не потом с помощью свойствомЩелкните правой кнопкой мыши
- Возможен выбор строка также добавлена будет выводиться нумерация. По ней мыЛиста 1«Diapason». диапазон шапки. Как жмем на кнопку кнопку управлять Поля со с ячейкой читайте ниже интересующих нас
- предназначены для этого. функции выбор (сейчасListFillRange поле со спискомустановите переключатель в табличный массив. в вашей таблице будем считать количествов области.
- Из раскрывшихся вариантов выбираем правило, в данном«Добавить»«Добавить» списком из программы ниже. Элементов управления формы. Огромное спасибо MicroSofty, я понял что(Диапазон элементов списка) и выберите командуодинарного значения Это означает, что и измените данные рядов. Поэтому, если
- «Project»После последнего действия обязательно позицию поле заполнено все.. VBA, то имяКак было сказано выше, У обоих типов что оставили возможность можно использовать индекс) и укажите диапазон
- Формат объектаи нажмите кнопку инструмент работает. координаты в коде, в вашем случае, на то, которое сохраняем документ, чтобы«Список» верно. Но намКак видим, изменение сразуПосле этого нужный нам может потребоваться только все Элементы управления есть одни и
- конструировать формы пользователям в ячейках придаётся ячеек для списка..ОКЧитайте также: если это необходимо. аналогичный столбец имеет мы только что названия, которые мы. следует установить галочку произошло и в инструмент отобразится в для настройки его формы возвращают значение. те же элементы самостоятельно (меню Элементы соответствующее значение, т.е.Изменение количества отображаемых элементовОткройте вкладку.Как создать макросВ строке производится очистка другой порядок по задали в настройках. присвоили, смог восприниматьКак видим, после этого около параметра табличной области. правой части окна. отображения на листе.
Это значение помещается Кнопка, Список, Флажок управления). выбираем тип тс спискаЭлемент управленияПримечание: в Excel диапазона формы ввода счету, то нужноЗатем переходим в центральную макрос, созданный нами окно проверки вводимых«Таблица с заголовками»Если нам нужно удалить, Жмем на кнопку
Об этом читайте в ячейку определенную и т.п. Разницаx2Far и получаем цену.Щелкните полеи настройте следующие Если вы хотитеКак создать кнопку
- данных после того, ввести соответствующее число. область окна. Именно в дальнейшем. Для значений несколько изменило. После этого жмем какую-то строчку, то«OK» ниже. пользователем. Чтобы связать между ними следующая:: Блин битый часА на второмListRows
- параметры. выбрать параметр в Excel как информация из
Значение
тут нам нужно сохранения переходим во
свою конфигурацию. Появилось на кнопку
через кнопки навигации
.Включите Область выделения (Главная / Редактирование/ Элемент управления с
чтобы использовать Элементы ActiveX сижу уже, ничего
листе (Осаго2) я
и введите число
Формировать список по диапазону
набора значенийВ Экселе существует два
неё была перенесена«End(xlUp).Offset(1, 0).Row»
будет записать сам вкладку
дополнительное поле«OK»
или полосу прокруткиТеперь данный инструмент располагается
Найти и выделить)
ячейкой, кликните на необходимо использовать VBA,
не получается.
начал делать с
элементов.
: введите диапазон ячеек,
или способа применения формы в таблицу:в любом случае код макроса. Если«Файл»«Источник». переходим к соответствующему в окне ExcelВ Области выделения можно управлять отображением него ПРАВОЙ клавишей а Элементы управленияПрикладываю файл с элементами формы АктивХ,Закройте область содержащий список элементов.списка значений
заполнения данными: встроенная
.Range("Diapason").ClearContents
оставляем без изменений. поле редактора кодаи кликаем по. Щелкаем по пиктограммеИтак, наш диапазон отформатирован, ей блоку полей на панели быстрого не только Элементов мыши, в появившемся формы можно напрямую работой которую делаю. а она вместоPropertiesСвязь с ячейкой, подумайте о том,
и пользовательская. ПрименениеНе трудно догадаться, чтоДалее рассмотрим строку белого цвета в пункту справа от него как «умная» таблица, в форме. После доступа, и мы управления, но и контекстном меню выберите Формат привязать к ячейкеВ общем на порядковых номеров элементов(Свойства) и нажмите: поле со списком
чтобы использовать элемент
встроенного варианта требует (
If .Range(«A2»).Value = «» указанной области не«Сохранить как…» левой клавишей мыши. свидетельством чему является этого щелкаем по им можем воспользоваться. других объектов на объекта… Появится диалоговое окно, на листе. первом листе (осаго) списка, вписывает в кнопку можно связать с ActiveX «Список». минимум усилий от«Diapason» And .Range(«B2»).Value = отображается, как в.
Затем окно проверки вводимых
даже изменение визуального кнопке Он будет присутствовать
листе, например рисунков. выберите вкладку ЭлементПоле со списком я сделал табличку ссылаемую ячейку (LincedCell)Режим конструктора ячейкой, где отображаетсяУпростите ввод данных для пользователя. Его всегда) означает наименование того «» Then нашем случае, тоВ открывшемся окне сохранения значений сворачивается. Выделяем отображения. Как видим,
«Удалить»
при открытии любой
Нажмите на изображение глаза управления (если такая(Combo box, Drop (это до того текст. В общем,.
номер элемента при
пользователей, позволив им
можно запустить, добавив диапазона, который мы
«A2» жмем на функциональную
в поле курсором с зажатой помимо прочего, околов окошке инструмента. книги данным экземпляром напротив имени объекта вкладка отсутствует, то down) как, впрочем как я задал при выборе, онЗавершив форматирование, можно щелкнуть его выборе из выбирать значение из
соответствующий значок на ранее присвоили полям— это координаты клавишу«Тип файлов» левой клавишей мыши каждого названия заголовкаОткрывается диалоговое окно предупреждения, Excel. и объект исчезнет/ Вы вставили Элемент и все другие тут вопрос) пишет в А27 правой кнопкой мыши списка. Введите номер поля со списком. панель быстрого доступа. для ввода данных. первой ячейки, вF7выбираем значение перечень данных, которые столбцов появились значки в котором сообщается,Теперь, чтобы инструмент понял, появится. ActiveX, а не Элементы управления формы,Там выбираются элементы например «легковой ам»,
столбец, который содержит ячейки, где должен Поле со списком
Пользовательскую форму нужно Если вы дали
которой будет выводитьсяи оно появится.«Книга Excel с поддержкой размещены на листе
фильтрации. Их следует что строка будет
что именно емуЭлементы управления формы (Поле
Элемент управления формы,
возвращает только 1 из списка и
мне надо что
список, и выбрать отображаться номер элемента. состоит из текстового создавать самому, но им другое наименование, нумерация строк.Теперь для конкретно нашего макросов (.xlsm)» в дополнительной табличной отключить. Для этого удалена. Если вы нужно заполнять, следует со списком, Флажок, об этом см. числовое значение. См. файл примера. потом с помощью
бы в другой командуНапример, в ячейке C1 поля и списка, если вы хорошо то в этой
«B2»
примера нужно записать. Далее жмем на области выделяем любую ячейку уверены в своих оформить шапку таблицы Счетчик и др.) выше).Обзорную статью обо всех функции выбор (сейчас ячейке (или вСкрыть
отображается значение 3, если которые вместе образуют разбираетесь в коде строке должно быть
— это координаты в поле следующий кнопку«Список товаров» «умной» таблицы и действиях, то жмите и записать любое помогают быстро менятьВ поле Связь с ячейкой нужно элементах управления формы я понял что этой же) происходило
- . выбрать пункт раскрывающийся список. VBA, то сможете вставлено именно оно. первой ячейки, по код:«Сохранить». После этого опять переходим во вкладку на кнопку значение в ней. данные на листе ввести ссылку на можно прочитать здесь. можно использовать индекс) сравнение с табличкойx2FarФруктовое мороженоеМожно добавить поле со
- сделать этот инструментДальнейшая часть кода универсальна которой будет производитьсяSub DataEntryForm(). жмем на пиктограмму«Данные»«OK»
- Пусть табличный массив в определенном диапазоне, ячейку. Свяжем нашеЧерез меню Разработчик/ Элементы управления/ в ячейках придаётся B27:C40 и возвращало: Есть несколько элементов, так как это списком одного из максимально гибким и и во всех вывод данных (Dim nextRow AsЗатем вам следует активировать справа от поля,. Там на ленте. у нас будет включать и выключать Поле со списком
- Вставить выберем левой клавишей соответствующее значение, т.е. значение цены например управления, в частности
третий элемент в двух типов: элемент подходящим под ваши случаях будет вноситься«Наименование товара» Long работу макросов в
- в котором появился в блоке инструментовКак видим, строчка была состоять из четырех опции, делать выбор с ячейкой мыши элемент Поле выбираем тип тс
- при «легковой а/м» раскрывающиеся списки. Надо списке. управления формы или нужды.
- без изменений.). Если они уnextRow = Producty.Cells(Producty.Rows.Count, своей версии Excel
- адрес выделенного диапазона.«Сортировка и фильтр» извлечена из табличного столбцов, которые имеют и пр. В
А1
со списком (см. и получаем цену.
писало 1980, если что бы при
Совет: элемент ActiveX. ЕслиАвтор: Максим ТютюшевПосле того, как вы вас отличаются, то 2).End(xlUp).Offset(1, 0).Row и включить вкладкуПроисходит возврат к окошкущелкаем по значку диапазона. После того, названия принципе, без них. рисунок ниже).А на втором «прицеп» то 810 выборе какого-нибудь пункта Чтобы вместо номера необходимо создать поле
Примечание:
lumpics.ru
Добавление списка или поля со списком на лист в Excel
записали код макроса введите вместо этихWith Producty«Разработчик» проверки вводимых значений.«Фильтр» как заполнение и«Наименование товара» можно обойтись, ноНажмите ОК.После этого выпадающее меню листе (Осаго2) я и т.д. из списка, блокировался отображать сам элемент, со списком, вМы стараемся как в окно редактора, координат свои данные.If .Range(«A2»).Value =, если вы это Как видим, координаты
. редактирование закончено, можно, они делают управлениеСуществует и другой способ
Добавление списка на лист
-
закроется, а курсор начал делать сЯ перепробовал функции другой раскрывающийся список
-
можно воспользоваться функцией котором пользователь сможет можно оперативнее обеспечивать следует нажать наПереходим к строке
«» And .Range(«B2»).Value до сих пор выделенного диапазона вСуществует ещё один вариант выходить из окна«Количество» данными на листе связать Элемент управления вместо обычного толстого элементами формы АктивХ, бизвлечь, впр и или несколько списков, ИНДЕКС. В нашем изменять текст в вас актуальными справочными значок сохранения вProducty.Range(«Name»).Copy = «» Then
-
не сделали. Дело нем уже отображены отключения фильтра. При инструмента, нажав на,
-
более наглядным и и ячейку: выделите
-
крестика а она вместо индекс. Но то или элементов управления. примере поле со
-
текстовом поле, рассмотрите материалами на вашем виде дискеты вВ ней параметр
nextRow = nextRow в том, что в поле этом не нужно кнопку
-
«Цена» уменьшают вероятность ввода правой клавишей мыши
порядковых номеров элементов ли я ихВот например как списком связано с возможность использования элемента языке. Эта страница левой части окна.«Name»
-
— 1 обе эти функции«Источник» даже будет переходить«Закрыть»и некорректных данных.
Элемент управления, в Строкепревратится в тонкий крестик. списка, вписывает в неправильно задаю, то тут: ячейкой B1, а ActiveX «Поле со переведена автоматически, поэтому Затем можно его
-
Добавление поля со списком на лист
означат имя, котороеEnd If по умолчанию в. Кликаем по кнопке на другую вкладку,.«Сумма»Для облегчения ввода данных формул введите =, затем
Удерживая левую клавишу мыши ссылаемую ячейку (LincedCell) ли они тутЭто калькулятор осаго, диапазон ячеек для списком». Элемент ActiveX ее текст может закрывать, щелкнув по мы присвоили полюProducty.Range(«Name»).Copy программе отключены, и«OK» оставаясь во вкладкеПосле этого для предания. Вводим данные названия в таблицу в кликните левой клавишей проведите курсором вправо текст. В общем, не подходят, в когда выбираешь пункт списка — A1:A2. Если «Поле со списком» содержать неточности и стандартной кнопке закрытия
-
«Наименование товара».Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues их активацию нужновнизу окна.«Главная»
табличному массиву более в произвольный горизонтальный Excel можно воспользоваться мыши на нужную
-
и немного вниз, при выборе, он общем у меня Тип ТС: грузовой в ячейку C1
более универсален: вы грамматические ошибки. Для окон в правомв форме ввода..Cells(nextRow, 3).Value = выполнять принудительно вТеперь справа от выделенной. После выделения ячейки наглядного визуального вида диапазон листа. специальными формами, которые ячейку, нажмите клавишу элемент пишет в А27 не получается. а/м, то становится ввести формулу можете изменить свойства
-
нас важно, чтобы верхнем углу.В строках
-
Producty.Range(«Volum»).Value окне параметров Excel. пустой ячейки объекта табличной области на можно произвести форматирование.Также, чтобы программа поняла,
помогут ускорить процесс
-
ENTERПоле со списком например «легковой ам»,Заранее спасибо. неактивным поле «Мощность=ИНДЕКС(A1:A5;B1)
-
-
шрифта, чтобы текст эта статья былаПосле этого возвращаемся на.Cells(nextRow, 2).PasteSpecial Paste:=xlPasteValues.Cells(nextRow, 4).Value =
После того, как вы ввода данных появилась
-
ленте в блокеКроме того, с помощью с каким именно заполнения табличного диапазона. Чтобы изменить ячейку,будет помещен на мне надо чтоx2Far
-
ТС»., то при выборе было легче читать вам полезна. Просим лист Excel. Теперь
Форматирование элемента управления формы «Поле со списком»
-
.Cells(nextRow, 3).Value = Producty.Range(«Price»).Value сделали это, переходим пиктограмма в виде настроек
-
макроса и ряда диапазонам ей нужно информацией. В Экселе с которой связан
-
лист. бы в другой: Спасибо, нашёл тут
-
Вот хотелось бы третьего пункта в на листе с вас уделить пару нам следует разместить Producty.Range(«Volum»).Value.Cells(nextRow, 5).Value = во вкладку треугольника. При клике
«Редактирование» других инструментов существует будет работать, следует имеется встроенный инструмент Элемент управления, достаточноЧтобы выделить Поле со ячейке (или в
=ИНДЕКС(B27:C40;ПОИСКПОЗ(A27;B27:B40;0);2) добиться того же ячейке C1 появится измененным масштабом. Кроме секунд и сообщить, кнопку, которая будет.Cells(nextRow, 4).Value = Producty.Range(«Volum»).Value * Producty.Range(«Price»).Value«Разработчик» на неё открываетсящелкаем по значку возможность создать собственную ввести любое значение позволяющий производить заполнение перетащить эту ячейку списком нажмите и этой же) происходило
-
УРААААААА!!!!!!!!!! =))))))))) в экселе, но текст «Фруктовое мороженое». того, такое поле помогла ли она активировать созданный макрос. Producty.Range(«Price»).Value.Range(«A2»).Formula = «=IF(ISBLANK(B2),. Кликаем по большому выпадающий список, состоящий«Сортировка и фильтр» пользовательскую форму для в первую строку подобным методом. Также
-
-
в нужное место, удерживайте клавишу сравнение с табличкой
Форматирование элемента ActiveX «Поле со списком»
-
x2Far не понимаю как,Количество строк списка: со списком можно вам, с помощью
-
Для этого переходим.Cells(nextRow, 5).Value = «»»», COUNTA($B$2:B2))» значку из названий, которые. В появившемся списке заполнения табличной области. табличного массива.
пользователь может создать взяв за ееCTRL B27:C40 и возвращало
: Есть несколько элементов
дело даже не
количество строк, которые
программно разместить в кнопок внизу страницы. во вкладку Producty.Range(«Volum»).Value * Producty.Range(«Price»).ValueIf nextRow >«Visual Basic» подтягиваются из табличного выбираем позицию
Она будет создаватьсяПосле этого выделяем любую
собственный вариант формы, границу., затем кликните левой значение цены например управления, в частности в том функциями должны отображаться, если
ячейках, содержащих список
Для удобства также«Разработчик»наименования 2 Then, который расположен на массива«Фильтр» прямо на листе,
ячейку заготовки таблицы которая будет максимальноПоле со списком удобно
клавишей на Поле при «легковой а/м» раскрывающиеся списки. Надо
или макросами, а щелкнуть стрелку вниз.
проверки данных. приводим ссылку на. В блоке настроек«Volum»Range(«A2»).Select ленте в блоке
«Список товаров».
и представлять собой и щелкаем на адаптирована под его для выбора единственного
-
со списком. писало 1980, если что бы при в том как Например, если списокВыберите столбец, который можно
-
оригинал (на английском«Элементы управления»иSelection.AutoFill Destination:=Range(«A2:A» & инструментов. Произвольные данные вКак видим, после этого
support.office.com
Элементы управления формы
её диапазон. С панели быстрого доступа потребности, применив для значения из заранееЕсли навести курсор на «прицеп» то 810 выборе какого-нибудь пункта вообще сделать неактивным содержит 10 элементов и скрыть на листе,
языке) .на ленте кликаем
«Price» nextRow)«Код» указанную ячейку теперь действия значки фильтрации помощью данного инструмента
по значку этого макрос. Давайте подготовленного списка. Выбранноевыделенный и т.д. из списка, блокировался элемент. Пытался сделать вы не хотите и создайте список,Если вам нужно отобразить по кнопкеозначают названия, которыеRange(«A2:A» & nextRow).Select. внести невозможно, а исчезли из шапки пользователь сам сможет«Форма…»
рассмотрим различные варианты значение может бытьэлемент Поле соЯ перепробовал функции другой раскрывающийся список макрос, чтоб на использовать прокрутку, вместо введя по одному список значений, которые«Вставить» мы присвоили полямEnd IfПоследнее действие приводит к только можно выбрать
таблицы, как это реализовать те возможности,, который мы ранее использования этих полезных использовано для вывода
списком (курсор примет бизвлечь, впр и или несколько списков, этом месте полупрозрачный значения по умолчанию значению в ячейки. сможет выбирать пользователь,
. Открывается перечень инструментов.«Количество».Range(«Diapason»).ClearContents тому, что запускается из представленного списка и требовалось. которые считает нужными. активировали. инструментов заполнения в соответствующих значений из форму 4-х направленных индекс. Но то или элементов управления. объект появлялся и введите 10. ЕслиПримечание: добавьте на лист
В группе инструментовиEnd With редактор макросов VBA.
нужную позицию. ВыбираемЗатем нам следует создать
По функционалу онИтак, открывается окно указанного Excel. той же строки. в разные стороны ли я их
Вот например как блокировал собой возможность ввести число, которое Можно также создать список список.«Элементы управления формы»«Цена»End Sub В области пункт в выпадающем
саму форму ввода практически ни в инструмента. Как видим,Скачать последнюю версию Например, если в стрелок), затем нажать неправильно задаю, то тут: нажатия на список, меньше количества элементов на другом листеСоздайте перечень элементов, которыевыбираем самый первыйв той жеНо этот код не«Project» списке. данных. Она тоже чем не будет данный объект имеет Excel таблице продаж содержатся и удерживать левую
ли они тутЭто калькулятор осаго, но он никак в списке, появится той же книги. должны отображаться в – форме ввода. универсальный, то есть,
, которая расположена в
Как видим, выбранная позиция будет представлять собой
уступать встроенному аналогу
поля, которые соответствуют
planetaexcel.ru
Элементы управления формы
Форма заполнения представляет собой объемы продаж по кнопку мыши, то не подходят, в когда выбираешь пункт не уходит на полоса прокрутки.На вкладке списке, как показано«Кнопка»
В этих же строках, он в неизменном
верхней левой части тут же отобразилась своего рода табличный Excel, а кое названиям столбцов нашего объект с полями,
месяцам (диапазон можно его переместить. Удерживая общем у меня Тип ТС: грузовой задний план.Нажмите кнопкуРазработчик на рисунке.. которые мы указали виде подходит только окна, выделяем имя в поле массив, состоящий из в чем, возможно, табличного массива. При наименования которых соответствуютF2:G13
клавишу ALT можно выровнять не получается. а/м, то становитсяVovaKОКнажмите кнопкуНа вкладкеЗатем с зажатой левой выше, цифры для нашего случая. того листа, где«Наименование товара» двух столбцов. Наименования превосходить его. Единственный
этом первое поле названиям колонок столбцовна рисунке ниже), Поле со спискомЗаранее спасибо.
неактивным поле «Мощность: У всех элементов.ВставитьРазработчик клавишей мыши обводим«2»
Если вы хотите располагаются наши таблицы.. строк данного объекта недостаток состоит в уже заполнено значением, заполняемой таблицы. В то выбирая в по границам ячеек.x2Far ТС». управления есть свойстваНа вкладке.нажмите кнопку курсором область, где,
его приспособить под В данном случаеДалее нам нужно будет будут соответствовать именам
том, что для так как мы
эти поля нужно Поле со списком Выделенный элемент также: Спасибо, нашёл тутВот хотелось бы .Visible и .Enabled.
РазработчикПримечание:Вставить хотим разместить кнопку«3» свои потребности, то это присвоить имена тем столбцов основной таблицы. каждого табличного массива
его ввели вручную вводить данные и месяц, можно вывести можно перемещать стрелками=ИНДЕКС(B27:C40;ПОИСКПОЗ(A27;B27:B40;0);2) добиться того же Первое делает элементнажмите кнопку Если вкладка. запуска макроса, который, его следует соответственно«Лист 1» трем ячейкам формы Исключение составляют столбцы придется составлять отдельную на листе. они тут же соответствующий объем продаж с клавиатуры.УРААААААА!!!!!!!!!! =))))))))) в экселе, но
невидимым, второе неактивным.Режим конструктораРазработчикПримечание: будет производить перенос«4» модифицировать. Чтобы вы. ввода, куда мы
«№ п/п»
форму, а неВводим значения, которые считаем
будут добавляться новой
(см. ячейку
planetaexcel.ru
Если навести курсор на
При упоминании баз данных (БД) первым делом, конечно, в голову приходят всякие умные слова типа SQL, Oracle, 1С или хотя бы Access. Безусловно, это очень мощные (и недешевые в большинстве своем) программы, способные автоматизировать работу большой и сложной компании с кучей данных. Беда в том, что иногда такая мощь просто не нужна. Ваш бизнес может быть небольшим и с относительно несложными бизнес-процессами, но автоматизировать его тоже хочется. Причем именно для маленьких компаний это, зачастую, вопрос выживания.
Для начала давайте сформулируем ТЗ. В большинстве случаев база данных для учета, например, классических продаж должна уметь:
- хранить в таблицах информацию по товарам (прайс), совершенным сделкам и клиентам и связывать эти таблицы между собой
- иметь удобные формы ввода данных (с выпадающими списками и т.п.)
- автоматически заполнять этими данными какие-то печатные бланки (платежки, счета и т.д.)
- выдавать необходимые вам отчеты для контроля всего бизнес-процесса с точки зрения руководителя
Со всем этим вполне может справиться Microsoft Excel, если приложить немного усилий. Давайте попробуем это реализовать.
Шаг 1. Исходные данные в виде таблиц
Информацию о товарах, продажах и клиентах будем хранить в трех таблицах (на одном листе или на разных — все равно). Принципиально важно, превратить их в «умные таблицы» с автоподстройкой размеров, чтобы не думать об этом в будущем. Это делается с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) присвоим таблицам наглядные имена в поле Имя таблицы для последующего использования:
Итого у нас должны получиться три «умных таблицы»:
Обратите внимание, что таблицы могут содержать дополнительные уточняющие данные. Так, например, наш Прайс содержит дополнительно информацию о категории (товарной группе, упаковке, весу и т.п.) каждого товара, а таблица Клиенты — город и регион (адрес, ИНН, банковские реквизиты и т.п.) каждого из них.
Таблица Продажи будет использоваться нами впоследствии для занесения в нее совершенных сделок.
Шаг 2. Создаем форму для ввода данных
Само-собой, можно вводить данные о продажах непосредственно в зеленую таблицу Продажи, но это не всегда удобно и влечет за собой появление ошибок и опечаток из-за «человеческого фактора». Поэтому лучше будет на отдельном листе сделать специальную форму для ввода данных примерно такого вида:
В ячейке B3 для получения обновляемой текущей даты-времени используем функцию ТДАТА (NOW). Если время не нужно, то вместо ТДАТА можно применить функцию СЕГОДНЯ (TODAY).
В ячейке B11 найдем цену выбранного товара в третьем столбце умной таблицы Прайс с помощью функции ВПР (VLOOKUP). Если раньше с ней не сталкивались, то сначала почитайте и посмотрите видео тут.
В ячейке B7 нам нужен выпадающий список с товарами из прайс-листа. Для этого можно использовать команду Данные — Проверка данных (Data — Validation), указать в качестве ограничения Список (List) и ввести затем в поле Источник (Source) ссылку на столбец Наименование из нашей умной таблицы Прайс:
Аналогичным образом создается выпадающий список с клиентами, но источник будет уже:
=ДВССЫЛ(«Клиенты[Клиент]»)
Функция ДВССЫЛ (INDIRECT) нужна, в данном случае, потому что Excel, к сожалению, не понимает прямых ссылок на умные таблицы в поле Источник. Но та же ссылка «завернутая» в функцию ДВССЫЛ работает при этом «на ура» (подробнее об этом было в статье про создание выпадающих списков с наполнением).
Шаг 3. Добавляем макрос ввода продаж
После заполнения формы нужно введенные в нее данные добавить в конец таблицы Продажи. Сформируем при помощи простых ссылок строку для добавления прямо под формой:
Т.е. в ячейке A20 будет ссылка =B3, в ячейке B20 ссылка на =B7 и т.д.
Теперь добавим элементарный макрос в 2 строчки, который копирует созданную строку и добавляет ее к таблице Продажи. Для этого жмем сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer). Если эту вкладку не видно, то включите ее сначала в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon). В открывшемся окне редактора Visual Basic вставляем новый пустой модуль через меню Insert — Module и вводим туда код нашего макроса:
Sub Add_Sell() Worksheets("Форма ввода").Range("A20:E20").Copy 'копируем строчку с данными из формы n = Worksheets("Продажи").Range("A100000").End(xlUp).Row 'определяем номер последней строки в табл. Продажи Worksheets("Продажи").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues 'вставляем в следующую пустую строку Worksheets("Форма ввода").Range("B5,B7,B9").ClearContents 'очищаем форму End Sub
Теперь можно добавить к нашей форме кнопку для запуска созданного макроса, используя выпадающий список Вставить на вкладке Разработчик (Developer — Insert — Button):
После того, как вы ее нарисуете, удерживая нажатой левую кнопку мыши, Excel сам спросит вас — какой именно макрос нужно на нее назначить — выбираем наш макрос Add_Sell. Текст на кнопке можно поменять, щелкнув по ней правой кнопкой мыши и выбрав команду Изменить текст.
Теперь после заполнения формы можно просто жать на нашу кнопку, и введенные данные будут автоматически добавляться к таблице Продажи, а затем форма очищается для ввода новой сделки.
Шаг 4. Связываем таблицы
Перед построением отчета свяжем наши таблицы между собой, чтобы потом можно было оперативно вычислять продажи по регионам, клиентам или категориям. В старых версиях Excel для этого потребовалось бы использовать несколько функций ВПР (VLOOKUP) для подстановки цен, категорий, клиентов, городов и т.д. в таблицу Продажи. Это требует времени и сил от нас, а также «кушает» немало ресурсов Excel. Начиная с Excel 2013 все можно реализовать существенно проще, просто настроив связи между таблицами.
Для этого на вкладке Данные (Data) нажмите кнопку Отношения (Relations). В появившемся окне нажмите кнопку Создать (New) и выберите из выпадающих списков таблицы и названия столбцов, по которым они должны быть связаны:
Важный момент: таблицы нужно задавать именно в таком порядке, т.е. связанная таблица (Прайс) не должна содержать в ключевом столбце (Наименование) повторяющихся товаров, как это происходит в таблице Продажи. Другими словами, связанная таблица должна быть той, в которой вы искали бы данные с помощью ВПР, если бы ее использовали.
Само-собой, аналогичным образом связываются и таблица Продажи с таблицей Клиенты по общему столбцу Клиент:
После настройки связей окно управления связями можно закрыть, повторять эту процедуру уже не придется.
Шаг 5. Строим отчеты с помощью сводной
Теперь для анализа продаж и отслеживания динамики процесса, сформируем для примера какой-нибудь отчет с помощью сводной таблицы. Установите активную ячейку в таблицу Продажи и выберите на ленте вкладку Вставка — Сводная таблица (Insert — Pivot Table). В открывшемся окне Excel спросит нас про источник данных (т.е. таблицу Продажи) и место для выгрузки отчета (лучше на новый лист):
Жизненно важный момент состоит в том, что нужно обязательно включить флажок Добавить эти данные в модель данных (Add data to Data Model) в нижней части окна, чтобы Excel понял, что мы хотим строить отчет не только по текущей таблице, но и задействовать все связи.
После нажатия на ОК в правой половине окна появится панель Поля сводной таблицы, где нужно щелкнуть по ссылке Все, чтобы увидеть не только текущую, а сразу все «умные таблицы», которые есть в книге.А затем можно, как и в классической сводной таблице, просто перетащить мышью нужные нам поля из любых связанных таблиц в области Фильтра, Строк, Столбцов или Значений — и Excel моментально построит любой нужный нам отчет на листе:
Не забудьте, что сводную таблицу нужно периодически (при изменении исходных данных) обновлять, щелкнув по ней правой кнопкой мыши и выбрав команду Обновить (Refresh), т.к. автоматически она этого делать не умеет.
Также, выделив любую ячейку в сводной и нажав кнопку Сводная диаграмма (Pivot Chart) на вкладке Анализ (Analysis) или Параметры (Options) можно быстро визуализировать посчитанные в ней результаты.
Шаг 6. Заполняем печатные формы
Еще одной типовой задачей любой БД является автоматическое заполнение различных печатных бланков и форм (накладные, счета, акты и т.п.). Про один из способов это сделать, я уже как-то писал. Здесь же реализуем, для примера, заполнение формы по номеру счета:
Предполагается, что в ячейку C2 пользователь будет вводить число (номер строки в таблице Продажи, по сути), а затем нужные нам данные подтягиваются с помощью уже знакомой функции ВПР (VLOOKUP) и функции ИНДЕКС (INDEX).
Ссылки по теме
- Как использовать функцию ВПР (VLOOKUP) для поиска и подстановки значений
- Как заменить ВПР функциями ИНДЕКС и ПОИСКПОЗ
- Автоматическое заполнение форм и бланков данными из таблицы
- Создание отчетов с помощью сводных таблиц