Содержание
- Применение инструментов заполнения
- Способ 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, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.
Интерактивная диаграмма
Качественная визуализация большого объема информации – это почти всегда нетривиальная задача, т.к. отображение всех данных часто приводит к перегруженности диаграммы, ее запутанности и, в итоге, к неправильному восприятию и выводам.
Вот, например, данные по курсам валют за несколько месяцев:
Строить график по всей таблице, как легко сообразить, не лучшая идея. Красивым решением в подобной ситуации может стать создание интерактивной диаграммы, которую пользователь может сам подстраивать под себя и ситуацию. А именно:
- двигаться по оси времени вперед-назад в будущее-прошлое
- приближать-удалять отдельные области диаграммы для подробного изучения деталей графика
- включать-выключать отображение отдельных валют на выбор
Выглядеть это может примерно так:
Нравится? Тогда поехали…
Шаг 1. Создаем дополнительную таблицу для диаграммы
В большинстве случаев для реализации интерактивности диаграммы применяется простой, но мощный прием – диаграмма строится не по исходной, а по отдельной, специально созданной таблице с формулами, которая отображает только нужные данные. В нашем случае, в эту дополнительную таблицу будут переноситься исходные данные только по тем валютам, которые пользователь выбрал с помощью флажков:
В Excel 2007/2010 к созданным диапазонам можно применить команду Форматировать как таблицу (Format as Table) с вкладки Главная (Home):
Это даст нам следующие преимущества:
- Любые формулы в таких таблицах автоматически транслируются на весь столбец – не надо «тянуть» их вручную до конца таблицы
- При дописывании к таблице новых строк в будущем (новых дат и курсов) – размеры таблицы увеличиваются автоматически, включая корректировку диапазонов в диаграммах, ссылках на эту таблицу в других формулах и т.д.
- Таблица быстро получает красивое форматирование (чересстрочную заливку и т.д.)
- Каждая таблица получает собственное имя (в нашем случае – Таблица1 и Таблица2), которое можно затем использовать в формулах.
Подробнее про преимущества использования подобных Таблиц можно почитать тут.
Шаг 2. Добавляем флажки (checkboxes) для валют
В Excel 2007/2010 для этого необходимо отобразить вкладку Разработчик (Developer), а в Excel 2003 и более старших версиях – панель инструментов Формы (Forms). Для этого:
- В Excel 2003: выберите в меню Вид – Панели инструментов – Формы (View – Toolbars – Forms)
- В Excel 2007: нажать кнопку Офис – Параметры Excel – Отобразить вкладку Разработчик на ленте (Office Button – Excel options – Show Developer Tab in the Ribbon)
- В Excel 2010: Файл – Параметры – Настройка ленты – включить флаг Разрабочик (File – Options – Customize Ribbon – Developer)
На появившейся панели инструментов или вкладке Разработчик (Developer) в раскрывающемся списке Вставить (Insert) выбираем инструмент Флажок (Checkbox) и рисуем два флажка-галочки для включения-выключения каждой из валют:
Текст флажков можно поменять, щелкнув по ним правой кнопкой мыши и выбрав команду Изменить текст (Edit text).
Теперь привяжем наши флажки к любым ячейкам для определения того, включен флажок или нет (в нашем примере это две желтых ячейки в верхней части дополнительной таблицы). Для этого щелкните правой кнопкой мыши по очереди по каждому добавленному флажку и выберите команду Формат объекта (Format Control), а затем в открывшемся окне задайте Связь с ячейкой (Cell link).
Наша цель в том, чтобы каждый флажок был привязан к соответствующей желтой ячейке над столбцом с валютой. При включении флажка в связанную ячейку будет выводиться ИСТИНА (TRUE), при выключении – ЛОЖЬ (FALSE). Это позволит, в дальнейшем, проверять с помощью формул связанные ячейки и выводить в дополнительную таблицу либо значение курса из исходной таблицы для построения графика, либо #Н/Д (#N/A), чтобы график не строился.
Шаг 3. Транслируем данные в дополнительную таблицу
Теперь заполним дополнительную таблицу формулой, которая будет транслировать исходные данные из основной таблицы, если соответствующий флажок валюты включен и связанная ячейка содержит слово ИСТИНА (TRUE):
Заметьте, что при использовании команды Форматировать как таблицу (Format as Table) на первом шаге, формула имеет использует имя таблицы и название колонки. В случае обычного диапазона, формула будет более привычного вида:
=ЕСЛИ(F$1;B4;#Н/Д)
Обратите внимание на частичное закрепление ссылки на желтую ячейку (F$1), т.к. она должна смещаться вправо, но не должна – вниз, при копировании формулы на весь диапазон.
Теперь при включении-выключении флажков наша дополнительная таблица заполняется либо данными из исходной таблицы, либо искусственно созданной ошибкой #Н/Д, которая не дает линии на графике.
Шаг 4. Создаем полосы прокрутки для оси времени и масштабирования
Теперь добавим на лист Excel полосы прокрутки, с помощью которых пользователь сможет легко сдвигать график по оси времени и менять масштаб его увеличения.
Полосу прокрутки (Scroll bar) берем там же, где и флажки – на панели инструментов Формы (Forms) или на вкладке Разработчик (Developer):
Рисуем на листе в любом подходящем месте одну за другой две полосы – для сдвига по времени и масштаба:
Каждую полосу прокрутки надо связать со своей ячейкой (синяя и зеленая ячейки на рисунке), куда будет выводиться числовое значение положения ползунка. Его мы потом будем использовать для определения масштаба и сдвига. Для этого щелкните правой кнопкой мыши по нарисованной полосе и выберите в контекстном меню команду Формат объекта (Format control). В открывшемся окне можно задать связанную ячейку и минимум-максимум, в пределах которых будет гулять ползунок:
Таким образом, после выполнения всего вышеизложенного, у вас должно быть две полосы прокрутки, при перемещении ползунков по которым значения в связанных ячейках должны меняться в интервале от 1 до 307.
Шаг 5. Создаем динамический именованный диапазон
Чтобы отображать на графике данные только за определенный интервал времени, создадим именованный диапазон, который будет ссылаться только на нужные ячейки в дополнительной таблице. Этот диапазон будет характеризоваться двумя параметрами:
- Отступом от начала таблицы вниз на заданное количество строк, т.е. отступом по временной шкале прошлое-будущее (синяя ячейка)
- Количеством ячеек по высоте, т.е. масштабом (зеленая ячейка)
Этот именованный диапазон мы позже будем использовать как исходные данные для построения диаграммы.
Для создания такого диапазона будем использовать функцию СМЕЩ (OFFSET) из категории Ссылки и массивы (Lookup and Reference) — эта функция умеет создавать ссылку на диапазон заданного размера в заданном месте листа и имеет следующие аргументы:
В качестве точки отсчета берется некая стартовая ячейка, затем задается смещение относительно нее на заданное количество строк вниз и столбцов вправо. Последние два аргумента этой функции – высота и ширина нужного нам диапазона. Так, например, если бы мы хотели иметь ссылку на диапазон данных с курсами за 5 дней, начиная с 4 января, то можно было бы использовать нашу функцию СМЕЩ со следующими аргументами:
=СМЕЩ(A3;4;1;5;2)
Хитрость в том, что константы в этой формуле можно заменить на ссылки на ячейки с переменным содержимым – в нашем случае, на синюю и зеленую ячейки. Сделать это можно, создав динамический именованный диапазон с функцией СМЕЩ (OFFSET). Для этого:
- В Excel 2007/2010 нажмите кнопку Диспетчер имен (Name Manager) на вкладке Формулы (Formulas)
- В Excel 2003 и старше – выберите в меню Вставка – Имя – Присвоить (Insert – Name – Define)
Для создания нового именованного диапазона нужно нажать кнопку Создать (Create) и ввести имя диапазона и ссылку на ячейки в открывшемся окне.
Сначала создадим два простых статических именованных диапазона с именами, например, Shift и Zoom, которые будут ссылаться на синюю и зеленую ячейки соответственно:
Теперь чуть сложнее – создадим диапазон с именем Euros, который будет ссылаться с помощью функции СМЕЩ (OFFSET) на данные по курсам евро за выбранный отрезок времени, используя только что созданные до этого диапазоны Shift и Zoom и ячейку E3 в качестве точки отсчета:
Обратите внимание, что перед именем диапазона используется имя текущего листа – это сужает круг действия именованного диапазона, т.е. делает его доступным в пределах текущего листа, а не всей книги. Это необходимо нам для построения диаграммы в будущем. В новых версиях Excel для создания локального имени листа можно использовать выпадающий список Область.
Аналогичным образом создается именованный диапазон Dollars для данных по курсу доллара:
И завершает картину диапазон Labels, указывающий на подписи к оси Х, т.е. даты для выбранного отрезка:
Общая получившаяся картина должна быть примерно следующей:
Шаг 6. Строим диаграмму
Выделим несколько строк в верхней части вспомогательной таблицы, например диапазон E3:G10 и построим по нему диаграмму типа График (Line). Для этого в Excel 2007/2010 нужно перейти на вкладку Вставка (Insert) и в группе Диаграмма (Chart) выбрать тип График (Line), а в более старших версиях выбрать в меню Вставка – Диаграмма (Insert – Chart). Если выделить одну из линий на созданной диаграмме, то в строке формул будет видна функция РЯД (SERIES), обслуживающая выделенный ряд данных:
Эта функция задает диапазоны данных и подписей для выделенного ряда диаграммы. Наша задача – подменить статические диапазоны в ее аргументах на динамические, созданные нами ранее. Это можно сделать прямо в строке формул, изменив
=РЯД(Лист1!$F$3;Лист1!$E$4:$E$10;Лист1!$F$4:$F$10;1)
на
=РЯД(Лист1!$F$3;Лист1!Labels;Лист1!Euros;1)
Выполнив эту процедуру последовательно для рядов данных доллара и евро, мы получим то, к чему стремились – диаграмма будет строиться по динамическим диапазонам Dollars и Euros, а подписи к оси Х будут браться из динамического же диапазона Labels. При изменении положения ползунков будут меняться диапазоны и, как следствие, диаграмма. При включении-выключении флажков – отображаться только те валюты, которые нам нужны.
Таким образом мы имеем полностью интерактивную диаграмму, где можем отобразить именно тот фрагмент данных, что нам нужен для анализа.
Ссылки по теме
- Умные таблицы Excel 2007/2010
Примечание: В настоящее время мы обновляем эту функцию и развертываем изменения, поэтому у вас могут быть другие возможности, чем описано ниже. Узнайте больше о предстоящих улучшениях функциональности в области «Создание формы» с помощью Microsoft Forms.
Опросы позволяют другим людям заполнять ваш список, например список участников или анкету, где вы можете увидеть все это в одном месте в Интернете. Вот как можно создать опрос в OneDrive и OneDrive для работы или учебы:
В OneDrive для работы или учебы
Чтобы при начать создание опроса, выполните указанные здесь действия.
-
Войдите в Microsoft 365 с помощью рабочей или учебной учетной записи.
-
Нажмите кнопку«Создать» и выберите Формы для Excel, чтобы приступить к созданию опроса.
Примечание:
Формы для Excel
доступны для OneDrive для работы или учебы и новых сайтов групп, связанных с Microsoft 365 группами. Узнайте больше о группах Microsoft 365. -
Введите имя опроса и нажмите кнопку «Создать».
-
Нажмите кнопку «Добавить вопрос», чтобы добавить новый вопрос в опрос. Доступны такие типы вопросов, как Выбор, Текст, Оценка и Дата.
Примечание: Опрос автоматически сохраняются при его создании.
-
Для вопросов типа «Выбор» введите текстовое содержание вопроса и каждого из вариантов выбора.
Хотите добавить варианты? Щелкните Добавить вариант, чтобы добавить ответы, отличные от двух стандартных вариантов. Нажмите кнопку «Добавить другое», чтобы добавить параметр выбора, который отображает текст «Другие». Чтобы удалить вариант, нажмите кнопку корзины рядом с ним. Вы также можете сделать ответ обязательным или разрешить несколько вариантов выбора с помощью параметров под вопросом. Чтобы Microsoft Forms в случайном порядке порядок параметров, которые отображаются для пользователей опроса, нажмите кнопку с многолипкой кнопкой(…)и выберите «Параметры в случайном порядке».
Совет: Нажмите кнопку с многоточием (…) и щелкните Подзаголовок, чтобы добавить для вопроса подзаголовок.
Для некоторых вопросов будут автоматически выводиться предложения.
Щелкните предлагаемый вариант, чтобы добавить его. В приведенном ниже примере выбраны Понедельник, Среда и Пятница.
-
Нажмите кнопку «Добавить вопрос», чтобы добавить другие вопросы в опрос. Изменить порядок вопросов можно с помощью стрелок Вверх и Вниз справа от них. Если вы хотите, чтобы на опросе отображалось большее текстовое поле, выберите параметр «Длинный ответ».
Совет: Чтобы скопировать вопрос, выберите его и нажмите кнопку «Копировать вопрос в правом верхнем углу.
-
Для текстовых вопросов также можно установить ограничение, если в качестве ответа должны использоваться числа. Нажмите кнопку с многоточием (…) и щелкните Ограничения. Установить для чисел ограничения можно с помощью параметров Больше, Меньше, Между и множества других.
-
Нажмите кнопку «Просмотр» в верхней части окна конструктора, чтобы посмотреть, как ваш опрос будет выглядеть на компьютере. Если вы хотите проверить свой опрос, введите ответы на вопросы в режиме предварительного просмотра и нажмите кнопку «Отправить».
-
Щелкните «Мобильный», чтобы посмотреть, как ваш опрос будет выглядеть на мобильном устройстве.
По завершению предварительного просмотра опроса нажмите кнопку «Назад».
В OneDrive
Важно: В ближайшее время будет отменена программа опроса Excel. Хотя существующие опросы, созданные в OneDrive с помощью > Excel, будут работать, но при создании опросов используйте Microsoft Forms.
В верхней части экрана нажмите Создать, а затем выберите пункт Опрос Excel.
Появится форма, на основе которой можно создать опрос.
Советы для создания опроса Excel
-
Вы можете добавить опрос в существующую книгу. Открыв книгу в Excel в Интернете, перейдите на главная и в группе «Таблицы» щелкните «Опрос > «Новый опрос». В книгу добавится лист опроса.
-
Заполните поля Введите название и Введите описание. Если вам не нужны название и описание, удалите замещающий текст.
-
Перетащите вопросы вверх или вниз, чтобы изменить их порядок в форме.
-
Если вы хотите просмотреть файл в том виде, в котором его увидят получатели, нажмите Сохранить и просмотреть. Чтобы продолжить редактирование, нажмите Изменить опрос. Закончив, нажмите Предоставить доступ к опросу.
-
Если нажать кнопку «Закрыть»,вернуться к редактированию и просмотру формы можно на домашней > вExcel в Интернете.
-
Выбрав команду Опубликовать опрос, вы запустите процесс создания ссылки на форму. Нажмите Создать, чтобы создать ссылку. Скопируйте ссылку и вставьте в письмо, сообщение или запись блога. Перейдя по ней, любой пользователь сможет заполнить вашу форму, но если вы не предоставили разрешение, он не увидит книгу с общими результатами.
Создание эффективной формы для опроса
Добавляя вопросы в форму, помните, что каждый из них соответствует столбцу на листе Excel.
Продумайте, как использовать результаты опроса, собранные на листе. Например, если вы предоставите пользователям список готовых ответов и они не будут вводить свои варианты, это позволит вам сортировать и фильтровать ответы.
Для этого перейдите на вкладку Главная > Опрос > Редактировать опрос и щелкните вопрос, который необходимо изменить. Укажите тип Выбор для параметра Тип отклика и разместите каждый вариант ответа в отдельной строке в поле Варианты выбора.
Вы также можете использовать другие типы ответов.
-
Типы Дата или Время позволяют сортировать результаты в хронологическом порядке.
-
Для ответов типа Число можно использовать вычисление при помощи математических функций, чтобы получить итоговые и средние значения.
-
Можно также использовать ответы типа Да/Нет, чтобы быстро узнать отношение респондентов к определенному вопросу.
Примечание: По мере того как вы добавляете вопросы в форму опроса, в электронной таблице создаются столбцы. Изменения, внесенные вами в форму опроса, отражаются в электронной таблице, кроме случаев, когда вы удалили вопрос или изменили порядок вопросов в форме. В этих ситуациях вам придется обновить таблицу вручную: удалите столбцы, которые соответствуют удаленным вопросам, или измените порядок столбцов с помощью вырезания и вставки.
См. также
Проверка результатов формы или опроса
Нужна дополнительная помощь?
Благодаря формам, а также многочисленным элементам управления и объектам, которые можно в них добавить, значительно упрощается ввод данных в листы и улучшается их внешний вид. Вы также можете делать это самостоятельно, и вам почти или совсем не потребуется код Microsoft Visual Basic для приложений (VBA).
Форма листа и шаблон Excel — это не одно и то же. Шаблон — это предварительно отформатированный файл, который служит отправной точкой для создания книги с требуемым оформлением. Форма содержит элементы управления, такие как поля и раскрывающиеся списки, упрощающие ввод и изменение данных для использующих ваш лист. Дополнительные информацию о шаблонах, которые можно скачать, см. в Excel шаблонов.
Общие сведения о формах
Форма (печатная или веб-версия) — это документ со стандартной структурой и форматированием, который упрощает сбор, у упорядочение и редактирование сведений.
-
Печатаемая форма содержит инструкции, форматирование, наклейки и пустые пробелы для ввода и ввода данных. Для создания печатных Excel и Excel шаблонов.
-
Веб-формы содержат те же функции, что и печатные формы. Кроме того, веб-формы содержат элементы управления. Элементы управления — это объекты, которые отображают данные или упрощают ввод или изменение данных, выполнение действия или выбор данных. Как правило, элементы управления упрощают работу с формой. Примерами часто используемых элементов управления являются списки, переключатели и кнопки. Элементы управления также могут запускать назначенные им макросы и реагировать на события, например щелчки мышью, путем выполнения кода Visual Basic для приложений (VBA).
Создавать печатные Excel веб-формы можно несколькими способами.
Типы форм Excel
В Excel можно создавать формы нескольких типов: формы данных, листы с элементами управления формы и ActiveX, а также пользовательские формы VBA. Каждый из этих типов формы можно использовать по отдельности или сочетать с другими типами для создания нужного решения.
Форма данных
форма данных предоставляет удобный способ ввода или отображения одной строки данных из диапазона или таблицы, не требующий применения горизонтальной прокрутки. Использовать форму данных может быть проще, чем перемещаться между столбцами, которых слишком много для одновременного отображения на экране. Форму данных можно применять тогда, когда достаточно простой формы с текстовыми полями, в качестве подписей которых используются заголовки столбцов, и когда не требуются сложные или пользовательские возможности, например списки и счетчики.
Excel может автоматически создать встроенную форму данных для диапазон или таблица. Такая форма представляет собой диалоговое окно, в котором все заголовки столбцов отображаются в виде подписей. Каждой подписи соответствует текстовое поле, в которое можно вводить данные для столбца (максимальное количество столбцов — 32). В форме данных можно вводить новые строки, находить строки путем навигации или (на основе содержимого ячейки) обновлять строки и удалять их. Если ячейка содержит формула, ее результат отображается в форме данных, но саму формулу в форме данных изменить нельзя.
Лист с формой и элементами ActiveX
Этот тип формы позволяет вводить и просматривать данные в сетке. Кроме того, на Excel уже встроены некоторые функции, похожие на элементы управления, такие как приметки и проверка данных. Ячейки напоминают текстовые поля, которые можно вводить и форматированием различными способами. Ячейки часто используются в качестве подписей, и благодаря регулировке высоты и ширины ячеек, а также объединению ячеек можно настроить поведение таблицы как простую форму для ввода данных. Другие функции управления, такие как приметки к ячейкам, гиперссылки, фоновые изображения, проверка данных, условное форматирование, внедренные диаграммы и автофайл, могут привести к работе с таблицами как к расширенным формам.
Для большей гибкости вы можете добавлять элементы управления и другие объекты-рисунки полотно на полотно, а также объединять и координировать их с ячейками. Например, с помощью списка можно упростить выбор элементов в списке. Кроме того, можно упростить ввод номера с помощью счетчика.
Элементы управления и объекты хранятся на полотне, и поэтому их можно отображать и просматривать одновременно со связанным текстом, не зависящим от границ строк и столбцов, без изменения макета сетки или таблицы данных на листе. В большинстве случаев многие из этих элементов управления можно также связать с ячейками на листе, а для их нормальной работы не требуется создавать код VBA. Можно задать свойства, определяющие, является ли элемент управления свободно перемещаемым или перемещается и изменяет размеры вместе с ячейкой. Например, может потребоваться, чтобы флажок перемещался вместе со связанной ячейкой при сортировке диапазона. С другой стороны, если нужно, чтобы список всегда отображался в одном и том же месте, нежелательно, чтобы он перемещался вместе с ячейкой.
В Excel поддерживаются два типа элементов управления: элементы управления форм и элементы ActiveX. Кроме этих наборов элементов управления, вы также можете добавлять объекты из средств рисования, такие как автофигуры, объект WordArt, графические элементы SmartArt или текстовые поля.
В следующих разделах более подробно описываются элементы управления и средства рисования, а также работа с ними.
Элементы управления формы
Элементы управления формы появились в Excel раньше всего и поддерживаются в предыдущих выпусках Excel (начиная с версии 5.0). Их также можно использовать на листах макросов XLM.
Элементы управления формы используются, если вы хотите легко ссылаться на данные ячеок и взаимодействовать с ними, не используя код VBA, а также добавлять их на листы диаграмм. Например, после добавления элемента управления «список» на лист и связывания его с ячейкой можно вернуть числовые значения для текущего положения выбранного элемента управления. Затем можно использовать это число в сочетании с функцией ИНДЕКС для выбора различных элементов в списке.
С помощью элементов управления формы можно также выполнять макросы. Можно назначить элементу управления существующий макрос либо создать или записать новый. Когда пользователь формы щелкает элемент управления, запускается макрос.
Однако эти элементы управления невозможно добавить в пользовательские формы, использовать для управления событиями или изменить для запуска веб-сценариев на веб-страницах.
Обзор элементов управления формы
Название кнопки |
Пример |
Описание |
|
---|---|---|---|
|
Надпись |
|
Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции. |
|
Значок кнопки |
|
Группирует связанные элементы управления в виде прямоугольника с необязательной подписью. Обычно группируются переключатели, флажки или тесно связанные данные. |
|
Изображение кнопки |
|
Запуск макроса, который выполняет действие при щелчке пользователем. Кнопка также называется push-кнопкой. |
|
Флажок |
|
Включает или отключает значение, что соответствует выбору противоположных действий. На листе или в группе можно установить несколько флажков. Флажок может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешанное состояние, то есть сочетание состояний «включено» и «отключено» (если поддерживается выбор нескольких элементов). |
|
Переключатель |
|
Позволяет выбрать одно из ограниченного набора взаимоисключающих значений. Переключатели обычно находятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешанное состояние, то есть сочетание состояний «включено» и «отключено» (если поддерживается выбор нескольких элементов). |
|
Список |
|
Выводит список из одного или нескольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различным. Существует три типа списков.
|
|
Поле со списком |
|
Представляет собой сочетание текстового поля и раскрывающегося списка. Поле со списком компактнее обычного списка, однако чтобы отобразить список элементов, пользователь должен щелкнуть стрелку вниз. Поле со списком следует использовать, когда требуется обеспечить возможность ввода элементов в список и выбора из него одного элемента. В этом элементе управления отображается текущее значение независимо от того, каким образом оно было введено. |
|
Полоса прокрутки |
|
Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между ползунком и одной из кнопок со стрелками для прокрутки. Как правило, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле. |
|
Счетчик |
|
Позволяет увеличивать и уменьшать значение, например числовое значение, время или дату. Чтобы увеличить значение, щелкните стрелку вверх, чтобы уменьшить — стрелку вниз. Как правило, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле. |
Примечание: Следующие элементы управления недоступны в Office Excel 2007 книгах. Эти элементы управления можно использовать только Excel на листах диалогов версии 5.0.
Название кнопки |
---|
|
|
со #x0 — вниз, редактирование |
|
Элементы ActiveX
Элементы ActiveX можно использовать на формах листа (без кода VBA или с ним), а также на пользовательских формах VBA. Мы рекомендуем применять их, если требуются более гибкие возможности, чем у элементов управления формы. Многочисленные свойства элементов ActiveX позволяют настраивать их внешний вид, поведение, шрифты и другие характеристики.
Можно также управлять событиями, которые происходят при взаимодействии с элементом ActiveX. Например, можно выполнять различные действия в зависимости от того, какой элемент выбирается из списка, или отправлять запрос базе данных для заполнения поля со списком элементами при нажатии кнопки. Можно также создавать макросы, которые реагируют на события, связанные с элементами ActiveX. При выборе элемента управления будет выполняться код VBA, обрабатывающий все назначенные ему события.
На компьютере находятся многочисленные элементы ActiveX, установленные приложением Excel и другими программами, такими как Calendar Control 12.0 и проигрыватель Windows Media.
Важно: Не все элементы ActiveX можно использовать непосредственно на листах; некоторые из них можно применять только к пользовательским формам Visual Basic для приложений (VBA). При попытке добавить такие элементы управления на лист в приложении Excel отображается сообщение «Вставка объекта неосуществима».
Тем не менее элементы ActiveX невозможно добавить на листы диаграмм (с помощью пользовательского интерфейса) или на листы макросов XLM. Кроме того, невозможно назначить макрос, который будет запускаться непосредственно из ActiveX так же, как и для управления формы.
Обзор элементов ActiveX
Название кнопки |
Пример |
Описание |
|
---|---|---|---|
|
Флажок |
|
Включает или отключает значение, что соответствует выбору противоположных действий. На листе или в группе можно одновременно установить несколько флажков. Флажок может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешанное состояние, то есть сочетание состояний «включено» и «отключено» (если поддерживается выбор нескольких элементов). |
|
Текстовое поле |
|
Позволяет просматривать, ввести или изменить текст или данные, привязанные к ячейке, в прямоугольнике. Текстовое поле также может быть статическим и содержать данные, предназначенные только для чтения. |
|
Кнопка |
|
Запуск макроса, который выполняет действие при щелчке пользователем. Кнопка также называется push-кнопкой. |
|
Переключатель |
|
Позволяет выбрать одно из ограниченного набора взаимоисключающих значений. Переключатели обычно находятся в группе или рамке. Переключатель может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешанное состояние, то есть сочетание состояний «включено» и «отключено» (если поддерживается выбор нескольких элементов). |
|
Список |
|
Выводит список из одного или нескольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различным. Существует три типа списков.
|
|
Поле со списком |
|
Представляет собой сочетание текстового поля и раскрывающегося списка. Поле со списком компактнее обычного списка, однако чтобы отобразить список элементов, пользователь должен щелкнуть стрелку вниз. Поле со списком следует использовать, когда требуется обеспечить возможность ввода элементов в список и выбора из него одного элемента. В этом элементе управления отображается текущее значение независимо от того, каким образом оно было введено. |
|
Выключатель |
|
Указывает на состояние (да/нет) или режим (вкл./выкл.). При нажатии кнопки она меняет свое состояние на противоположное. |
|
Счетчик |
|
Позволяет увеличивать и уменьшать значение, например числовое значение, время или дату. Чтобы увеличить значение, щелкните стрелку вверх, чтобы уменьшить — стрелку вниз. Как правило, пользователь также может вводить текст в связанную ячейку или текстовое поле. |
|
Полоса прокрутки |
|
Используется для прокрутки диапазона значений с помощью кнопок со стрелками или путем перетаскивания ползунка полосы прокрутки. Можно перемещаться по странице значений (с заранее заданным интервалом), щелкая область между ползунком и одной из кнопок со стрелками для прокрутки. Как правило, пользователь также может вводить текст непосредственно в связанную ячейку или текстовое поле. |
|
Надпись |
|
Указывает назначение ячейки или текстового поля либо содержит описание (заголовки, подписи, рисунки) или краткие инструкции. |
|
Изображение |
|
Выводит изображение, например точечный рисунок, JPEG или GIF. |
Рамка |
|
Группирует связанные элементы управления в виде прямоугольника с необязательной подписью. Обычно группируются переключатели, флажки или тесно связанные данные. Примечание: Элемент ActiveX рамки не доступен в разделе ActiveX элементов управления команды Вставка. Тем не менее его можно добавить из диалогового окна Другие элементы, выбрав пункт Рамка Microsoft Forms 2.0. |
|
|
Другие элементы |
Выводит список доступных на компьютере элементов ActiveX, которые можно добавить в настраиваемую форму (например, элементы Calendar Control 12.0 или проигрывателя Windows Media). В этом диалоговом окне также можно зарегистрировать пользовательский элемент управления. |
Объекты средств рисования
вы также можете включить в форму графические элементы SmartArt, фигуры, wordArt и текстовые поля. Можно изменять размер и цвет таких объектов, поворачивать, отражать и объединять их, чтобы получать еще более сложные фигуры. Текст, который вы вводите непосредственно в фигуру или надпись, становится частью объекта — при повороте или отражении объекта он также меняет свое положение. В отличие от элементов ActiveX, отдельным словам и знакам в объекте можно назначать различные атрибуты, например размер или начертание шрифта. Кроме того, объектам можно назначать макросы или гиперссылки. Можно даже связать текст в фигуре или надписи с ячейкой листа и динамически выводить обновленные значения.
Работа с элементами управления и объектами на листе
После добавления форм и элементов ActiveX на форму листа обычно их требуется настроить и упорядочить для создания привлекательной и понятной формы. При этом часто выполняются перечисленные ниже задачи.
-
Управление отображением линий сетки при работе с элементами управления и отключение либо включение вывода линий сетки на готовой форме листа.
-
Выбор или отмена выбора элементов управления с целью указания свойств или дополнительной настройки.
-
Изменение текста элемента управления, например заголовка или подписи.
-
Группировка, копирование, перемещение и выравнивание элементов управления для упорядочения макета формы листа.
-
Изменение размера и форматирования элементов управления для достижения требуемого внешнего вида.
-
Изменение положения или размера элемента управления относительно ячейки.
-
Защита элементов управления и связанных ячеек в соответствии с собственными потребностями.
-
Включение или отключение печати элементов управления вместе с формой листа.
-
Удаление неиспользуемых элементов управления.
На фоне формы листа можно отобразить или скрыть линии сетки. Например, может потребоваться отключить линии сетки ячеек и затем применить ко всем ячейкам один и тот же цвет либо узор или даже использовать в качестве фона листа рисунок. Чтобы скрыть или отобрать линии сетки, на вкладке Вид в группе Показать или скрыть, скройте или выберите поле Сетка.
Определение типа элемента управления на листе
Поскольку существует три разных типа элементов управления и объектов, которые можно изменять уникальным образом, иногда невозможно точно определить тип элемента управления по его внешнему виду. Чтобы определить тип элемента управления (элемент управления формы или элемент ActiveX), щелкните его правой кнопкой мыши и просмотрите контекстное меню.
-
Если контекстное меню содержит команду Свойства, элемент управления является элементом ActiveX и сейчас используется режим конструктора.
-
Если контекстное меню содержит команду Назначить макрос, это элемент управления формы.
Совет: Чтобы отобразить правильное shortcut menu для группы box Form control, убедитесь, что вы выбрали периметр, а не внутреннюю часть группы.
-
Если контекстное меню содержит команду Изменить текст, это объект-рисунок.
Пользовательские формы VBA
Для максимальной гибкости можно создавать пользовательские формы пользователей, которые обычно включают один или несколько ActiveX элементов управления. Пользовательские формы вызываются из программного кода VBA, который создается в редакторе Visual Basic. Ниже приведены общие указания по созданию пользовательских форм.
-
Вставьте пользовательскую форму в проект VBA книги. Для доступа к проекту VBA нужно сначала отобразить редактор Visual Basic (нажмите ALT+F11), а затем в меню Вставка нажать кнопку Пользовательскаяформа.
-
Создайте процедуру для отображения пользовательской формы.
-
Добавьте элементы ActiveX.
-
Измените свойства элементов ActiveX.
-
Создайте процедуры обработчика событий для элементов ActiveX.
Пользовательские формы также могут использовать дополнительные функции форм. Например, можно программным образом добавить отдельный переключатель для каждой буквы алфавита или флажок для каждого элемента в крупном списке дат и чисел.
Перед созданием пользовательских форм рассмотрите возможность применения встроенных диалоговых окон, доступных в Excel. Они включают функции VBA InputBox и MsgBox, метод Excel InputBox, метод GetOpenFilename, метод GetSaveAsFilename и объект Dialogs объекта Application, который содержит все встроенные диалоговые окна Excel.
Дополнительные сведения можно получить в Центре разработчика Microsoft Office Excel.
К началу страницы
Ранее я рассмотрел методы создания пользовательских форм и основы работы с ними (если вы никогда не работали с пользовательскими формами, рекомендую для начала прочитать указанную заметку). В настоящем материале приводится целый ряд практически полезных примеров пользовательских диалоговых окон.[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.
A UserFrom refers to a form or a dialog box on the screen that enables a user to input data into Excel’s user interface. it can be created using the Visual Basic Editor and is used to control data entry and avoid errors.
1. Creating a UserForm:
To create a userform head on to the Developer tab-> Visual Basic->Insert->UserForm.
You can also go to the Project window on the left side and right-click the workbook you want to use and select Insert->UserForm. This opens up a blank userform (UserForm1) and a toolbox(if the toolbox doesn’t pop up head on to View>toolbox).
2. Naming the UserForm:
By default, excel opens up an userform with the name UserForm1 in order to change that name:
- Head to the Properties window(view>Properties window), This opens a pane on the left.
- Click on the ‘Name’ section and type a name of your choice. (don’t add spaces)
- The name won’t be reflected on the userform when you do so because that’s a different property of the form.
- Head to the ‘Caption’ property and type in a name, and it will be reflected on your UserForm.
Now let’s play with some controls and learn how to add them to our UserForm.
3. Adding a Textbox to the UserForm:
A Textbox is used to enable users to input information into the form.
- To add a TextBox head onto the ToolBox. Click on( View->Toolbox) if it isn’t visible by default.
- Select the TextBox button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize the Textbox to the dimensions of your liking
To rename the Textbox With the new textbox selected, double-click on the ‘Name’ property in the Properties window and rename it(its been renamed to ‘TextBox’ here).
4. Adding a Label to the UserForm:
A Label can be used to describe what type of data is being entered into the textboxes, a message, or instructions.
- To add a Label head onto the ToolBox.
- Select the ‘Label ‘button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize it to the dimensions of your liking or leave it in standard size.
To rename the Label With the new Label selected, double-click on the ‘Name‘ property in the Properties window and rename it. Also, change the ‘Caption’ property accordingly. its been renamed to ‘LblSelectSheet’ and captioned to ‘Please select a worksheet’.
5. Adding Buttons to the Userform:
To make the form interactive you can place buttons to perform certain actions.
- To add a Button head onto the ToolBox.
- Select the ‘CommandButton’ button
- Click on the userform to place it or drag it to a position of your choice.
- You can resize it to the dimensions of your liking or reposition the buttons by dragging them to a new location on the form.
To rename the button With the new button selected, double-click on the ‘Name’ property in the Properties window and rename it. Then change the ‘Caption’ property to name the button relevantly close to the action it will be performing. For example the AddSheet and CloseFom button in the image below. In the below images 2 buttons have been added and renamed to ‘CmdAddSheet’ and ‘CmdCloseFrm’ and captioned to ‘Add Sheet’ and ‘Close Form’.
6. Adding code to the buttons:
To ensure the buttons are performing the actions we need to code inside VBA and to add code for specific controls double-click on the controls in the form, and it directs you to the specific code segment. After adding the necessary code for each of the controls click on the run button to display the userform.
- Select the button for example Add sheet button in this example
- On the Menu bar, choose View >Code.
- This creates a procedure, where you can add your code.
- Enter the following code to add another sheet to your workbook and name it according to your choice.
Private Sub CmdAddSheet_Click() Worksheets.Add before:=Worksheets(1) ActiveSheet.Name = InputBox("please enter the name for the worksheet") End Sub
7. Adding code to the close button :
Add the following code to close the form by clicking on the ‘close from’ button and redirect to the VBE.
Private Sub CmdCloseFrm_Click() Unload Me End Sub
8. Testing the userform :
To test the UserForm simply go to the menu bar and hit the Run button. It runs userform and displays it on the screen. For example, a userform that selects a sheet from the combobox and directs you to it, with 2 buttons Add Sheet and Close form button to add an extra sheet in the workbook and the close the userform is displayed.
Complete code to run the above userform inclusive of a combobox with the list of worksheets currently present in the workbook and functionality of buttons is:
Private Sub CmdAddSheet_Click() Worksheets.Add before:=Worksheets(1) ActiveSheet.Name = InputBox("please enter the name for the worksheet") End Sub Private Sub CmdCloseFrm_Click() Unload Me End Sub Private Sub combobox_Change() Worksheets(Me.combobox.Value).Select End Sub Private Sub UserForm_Initialize() Dim i As Integer i = 1 Do While i <= Worksheets.Count Me.combobox.AddItem Worksheets(i).Name i = i + 1 Loop End Sub
To automate the userform experience or to display it as soon as you open the workbook the following needs to be done:
Making use of the workbook event
- Head on to the Developer tab>Visual Basic.
- Double click “This workbook” from the project window.
- Change the drop-down on the top left from General to workbook.
- Add this line of code to the procedure “formname.show”(in the below example frmFinalReport.show).
- Save and run.
Общие сведения о формах, элементах управления форм и элементах ActiveX на листе
Смотрите также форму для вводаЗащита, который содержит все меню для группы например заголовка илиРамка Microsoft Forms 2.0 щелкните стрелку вниз, управления формы или В этом диалоговом гибкие требования к поле со списком, и смешанное состояние, добавлять в пользовательские вместе с ячейкой. котором можно ввести данных. Excel иПримечание: данных в форматированнуюи выберите команду встроенные диалоговые окна элемент управления формы,
подписи.. чтобы отобразить список элемент ActiveX), щелкните окне также можно разработке чем элементы но пользователь должен
то есть сочетание формы, управления или Например может иметь данные для каждого Excel можно использоватьМы стараемся как таблицу. Заранее спасибоЗащитить лист Excel. убедитесь в том,Группировка, копирование, перемещение иНесколько элементов управления элементов. С помощью его правой кнопкой
зарегистрировать пользовательский элемент управления формы. Элементы щелкните стрелку вниз, состояний «включено» и применять для выполнения флажка, который вы столбца, не более шаблоны для создания можно оперативнее обеспечивать за ответ..Дополнительные сведения можно получить что вы выбрали выравнивание элементов управленияОтображает список дополнительных элементов разрешение пользователя для мыши и просмотрите управления. управления ActiveX обладают чтобы отобразить список
Что такое формы?
«отключено» (если поддерживается сценариев на веб-страницах. хотите переместить вместе 32 столбцов. В печатной формы. вас актуальными справочными
-
ZВыберите нужные параметры защиты. в Центре разработчика периметр группы, а для упорядочения макета управления ActiveX, доступных любого типа записи контекстное меню.
-
После добавления форм и широкая свойств, которые элементов. Использование поля выбор нескольких элементов).Выводит список доступных на с ее базовой форме данных, можноИнтерактивные формы содержат похожих материалами на вашем: Да. Выделить данныеСохраните и закройте книгу. Microsoft Office Excel. не ее внутреннюю формы листа. на вашем компьютере, и выберите толькоЧтобы отобразить правильное контекстное элементов ActiveX на можно использовать для со списком дляЧтобы отобразить правильное контекстное компьютере элементов ActiveX, ячейки при сортировке вводить новые строки, функций как печатной
языке. Эта страница и нажать знакСовет:К началу страницы
Типы форм Excel
часть группы.Изменение размера и форматирования можно добавить к один элемент из меню для элемента форму листа обычно
Форма данных
настройки их внешний включения пользователя для меню для элемента которые можно добавить диапазон. Тем не поиск строки с формы. Кроме того переведена автоматически, поэтому «Форма». Если его Чтобы продолжить редактирование послеВы можете создать формуЕсли контекстное меню содержит элементов управления для настраиваемой формы, такие списка. Элемент управления управления формы «Группа», их требуется настроить вид, поведение, шрифты входа введите или управления формы «Группа», в настраиваемую форму менее если у помощью навигации или
интерактивные формы содержат ее текст может еще нет, то защиты формы, в в Excel, добавив команду достижения требуемого внешнего как Calendar Control отображает текущее значение выделите периметр группы, и упорядочить для и другие характеристики. выберите только один выделите периметр группы, (например, элементы Calendar вас есть поле (на основе содержимого элементы управления. Элементы содержать неточности и вынести на ПБД меню в книгу элементыНазначить макрос вида. 12.0 и проигрыватель в текстовом поле, а не ее создания привлекательной иТакже можно управлять различные
Включает или отключает значение, что соответствует выбору противоположных действий. На листе или в группе можно установить несколько флажков. Флажок может иметь одно из трех состояний: установлен (значение включено), снят (значение отключено) и смешенное состояние, то есть сочетание состояний «включено» и «отключено» (если поддерживается выбор нескольких элементов).
элемент из списка. а не ее Control 12.0 или со списком, которое ячейки) обновление строк управления, объекты, которые грамматические ошибки. Для (панель быстрого доступа)…Сервис управления содержимым, такие, объект-рисунок.Изменение положения или размера Windows Media. В независимо от способа внутреннюю часть. понятной формы. При события, возникающие при Элемент управления отображает внутреннюю часть. проигрывателя Windows Media). нужно оставить в и удаление строк. отображают данные или нас важно, чтобыИринанаведите указатель на как кнопки, флажки,Для максимальной гибкости можно элемента управления относительно этом диалоговом окне ввода этому значению.
Позволяет выбрать одно из этом часто выполняются работе элемента ActiveX текущее значение вПозволяет выбрать одно из В этом диалоговом определенном месте вообще Содержит ли ячейка упростить для пользователей эта статья была: Здравствуйте. Спасибо. Я пункт списки и поля создавать пользовательские формы, ячейки. можно также зарегистрироватьВыключатель ограниченного набора взаимоисключающих перечисленные ниже задачи. с. Например вы текстовом поле, независимо ограниченного набора взаимоисключающих окне также можно значениями времени, вы, формула, будет выведен для ввода или вам полезна. Просим знаю это действие.Защита со списками. После которые представляют собойЗащита элементов управления и настраиваемого элемента управления.Указывает на состояние (да/нет) значений. Переключатели обычноВыбор или отмена выбора можете выполнять различные от способа ввода значений. Переключатели обычно зарегистрировать пользовательский элемент скорее всего, не
результат формулы в редактирования данных, выполнить вас уделить пару Но если данныхи выберите команду этого другие пользователи настраиваемые диалоговые окна, связанных ячеек вКроме того, можно или режим (вкл./вкл.). находятся в группе
элементов управления с действия, в зависимости этому значению. находятся в группе управления. требуется переместить вместе форме данных, но действие или выбрать
Выводит список из одного или нескольких текстовых элементов, которые может выбрать пользователь. Список можно применять для представления большого числа вариантов, количество и содержимое которых может быть различным. Существует три типа списков.
секунд и сообщить, много и таблицаСнять защиту листа смогут заполнить эту которые обычно включают соответствии с собственными включить графики SmartArt,
При нажатии кнопки или рамке. Переключатель целью указания свойств от того, какойПозволяет увеличивать и уменьшать или рамке. ПереключательПример с ее базовой не удается изменить нужный вариант. Как помогла ли она огромная, то тогда. форму в приложении один или несколько потребностями. фигуры, объекта WordArt она меняет свое может иметь одно или дополнительной настройки. вариант пользователь выбирает значение, например числовое
может иметь одноОписание ячейки. формулу с помощью правило элементы управления вам, с помощью
как быть? АПри необходимости вы можете Excel и при элементов управления ActiveX.Включение или отключение печати и текстовых полей
Обзор элементов управления формы
состояние на противоположное. из трех состояний:Включает или отключает значение, из списка или значение, время или из трех состояний:Позволяет увеличивать и уменьшатьВ Excel есть два формы данных. упрощает формы для кнопок внизу страницы. |
работники мои плохо |
проверить форму, прежде |
|
желании распечатать ее. Пользовательские формы сделать элементов управления вместе в форме. МожноУвеличение или уменьшение значению, установлен (значение включено), что соответствует выбору можно запросов к дату. Чтобы увеличить установлен (значение включено), значение, например числовое типа элементов управления: |
|||
Лист — это тип использования. Стандартные элементы Для удобства также соображают по части чем распространять ее.Более новые версии доступными из кода |
с формой листа. изменить размер, поворот, например номер увеличения, снят (значение отключено) противоположных действий. На базе данных, чтобы значение, щелкните стрелку |
||
снят (значение отключено) значение, время или формы и элементы формы, которая позволяет управления примеры списками, приводим ссылку на офиса 2010, ониЗащитите форму, как указано Office 2011 VBA, созданный вУдаление неиспользуемых элементов управления. отражение, цвета и время или дата. и смешанное состояние, листе или в заполнить поля со |
|||
вверх, чтобы уменьшить и смешанное состояние, дату. Чтобы увеличить управления ActiveX. Кроме |
для ввода и переключатели и кнопки оригинал (на английском могут работать лишь в описании шагаВ меню редакторе Visual Basic.Вы можете создавать формы объединение этих объектов Чтобы увеличить значение, то есть сочетание группе можно одновременно списком с элементами, — стрелку вниз. то есть сочетание |
||
значение, щелкните стрелку этих наборов элементов просмотра данных в команд. Элементы управления языке) . с готовыми ячейками |
3.Excel Ниже приведены пошаговые листа или без для создания более щелкните стрелку вверх; состояний «включено» и установить несколько флажков. при нажатии кнопки. Как правило, пользователь состояний «включено» и вверх, чтобы уменьшить управления можно также сетке и несколько |
||
можно также выполнения |
Важно: и формулами. Хотелось
|
||
вводе текста непосредственно щелкните стрелку вниз. выбор нескольких элементов). одно из трех макросы, ответ на текст в связанную выбор нескольких элементов). Как правило, пользователь средства рисования, такие уже есть встроенные реагировать на события, Office на Компьютере не разносить все способом и сохраните.Вставьте UserForm пункт к режиме. Например может в объекте фигуры Как правило пользователь |
Добавьте элементы ActiveX. состояний: установлен (значение события, связанные с ячейку или текстовоеДобавьте элементы ActiveX. также может вводить как автофигуры, объект листы Excel, например такие как щелчки с Windows RT. в ручную, а как копию.В разделе книге. Доступ к потребоваться отключение линий или текстового поля, может ввести текстовогоСоздайте процедуры обработчика событий включено), снят (значение элементами управления ActiveX. |
||
поле.Создайте процедуры обработчика событий текст непосредственно в WordArt, графический элемент комментарии и проверка мышью запустив Visual Хотите узнать, какая с помощью формыProstaKРазработка книге пункт отображая сетки между ячейками |
|||
текст станет частью значения в связанной для элементов ActiveX. отключено) и смешанное При взаимодействии пользователяУвеличение или уменьшение значению, для элементов ActiveX. связанную ячейку или SmartArt или надписей. данных. Ячейки напоминать Basic для приложений версия пакета Office |
данные заносить по: Доброго времени суток!выберите редактора Visual Basic и затем форматирование этого объекта, если ячейки или текстовогоПользовательские формы также позволяют
состояние, то есть формы с элементом например номер увеличения,Пользовательские формы также позволяют текстовое поле.В следующих разделах описаны текстовые поля, в (VBA). используется? столбцам таблицы.Есть файл, в |
Представление |
(нажмите клавиши ALT всех ячеек с |
повернуть или отразить поля. |
применять дополнительные функции |
Элементы ActiveX
сочетание состояний «включено» управления, позволяет обработать время или дата. применять дополнительные функцииНа компьютере находятся многочисленные эти элементы управления том, что можноС помощью Excel поддерживаетС помощью формыvikttur нем таблица, которая. + F11), а одного цвета или объект, текст будетПозволяет увеличивать и уменьшать форм. Например, можно и «отключено» (если
все события, возникающие Чтобы увеличить значение, форм. Например, можно элементы ActiveX, установленные и графических объектов вводить и форматировать несколько способов создания и многие элементы: Тогда, если нет заполняется посредством «ФормыВ разделе затем в меню узора или даже вращаться и отражается значение, например числовое программным образом добавить поддерживается выбор нескольких для этого элемента щелкните стрелку вверх; программным образом добавить приложением Excel и и также объясняется, их в различных форм печатной и управления и объекты,
навыков работы с ввода данных вПоказывать на лентеВставка использование рисунка в вместе с ним. значение, время или
отдельный переключатель для элементов). управления запускается код Чтобы уменьшить значение, отдельный переключатель для другими программами, такими как работать с способов. Ячейки часто сети. которые можно добавить формами в VBA таблицу» проблема вустановите флажоквыберите щелкнув
качестве фона листа. В отличие от дату. Чтобы увеличить каждой буквы алфавитаИзменение положения или размера VBA. щелкните стрелку вниз. каждой буквы алфавита как Calendar Control этими элементами управления используются как названия
Обзор элементов управления ActiveX
Группирует связанные элементы управления к ним, можно — только заказывать том, что данныеВкладка «Разработчик»UserForm Чтобы скрыть или элементов управления ActiveX значение, щелкните стрелку или флажок для элемента управления относительно |
На компьютере находятся многочисленные Как правило пользователь или флажок для 12.0 и проигрыватель и объектами более и регулируйте высоту в виде прямоугольника упростить ввод данных работу в платном |
||
в таблицу переносятся.. отобразить линии сетки, |
можно назначить различные вверх, чтобы уменьшить каждого элемента в ячейки. элементы ActiveX, установленные может ввести текстовое каждого элемента в Windows Media. подробно. и ширину ячейки с необязательной подписью. на листе и разделе. Вряд ли строго последовательно (т.е.В правой части лентыСоздайте процедуру для отображения |
||
на вкладке атрибуты, например, размер — стрелку вниз. |
крупном списке датПозволяет, в прямоугольник, просмотр, приложением Excel и значение непосредственно в крупном списке датГруппы связанных элементов управленияПростой список поддерживает выбор и объединение ячеек, Обычно группируются переключатели, |
||
улучшить внешний вид найдется желающий писать при удалении первой нажмите кнопку пользовательской формы.Вид шрифта и начертание Как правило, пользователь и чисел. введите или измените других программ, таких связанной ячейки или и чисел. в единый блок только одного элемента. вы можете сделать флажки или тесно содержимое листа. Можно |
большую форму задаром записи из двухи выберите пунктДобавление элементов управления ActiveX.в группе шрифта, отдельные слова также может вводитьНесвязный выбор нескольких позволяет текст или данных, как Calendar Control текстового поля.Список, разрешающий несвязный выбор прямоугольник с необязательно Такой список похож лист поведению форму |
||
связанные данные. также выполнить самостоятельно и вряд ли внесенных, следующая будетПараметры лентыИзменение свойств элементов управления |
Показать или скрыть и символы в текст в связанную выбрать один элемент, привязанном к ячейке. 12.0 и проигрывательПримечание: нескольких строк, позволяет метки. Как правило на набор переключателей, ввода данных простого.форма данных предоставляет удобный с прямым или Вы сами ее |
||
не первая, а |
. ActiveX.
|
||
поле. элементов. может быть статическоеВажно: в книгах Office расположенные рядом элементы, или тесно связанного большее количество элементов like, например примечания отображения одной строки Visual Basic дляМотя с чем прошуНастройки для элементов управленияСетка добавлять гиперссылки наПодписьРасширенные списка со множественным |
текстовое поле, которое Не все элементы управления Excel 2007. В а также разрозненные содержимого. в меньшей области. к ячейкам, гиперссылки, данных из диапазона приложений (VBA).: Уважаемая Ирина! помочь сделать так,установите флажок ActiveX.. эти объекты. МожноУказывает назначение ячейки или выбором включает один содержит сведения только ActiveX можно использовать |
||
Excel версий 5.0 |
элементы.Включает или отключает значение,Использование элементов управления формы фоновые изображения, проверки или таблицы, не |
||
Форма листа не тоНе изобретайте велосипед! что бы данныеРазработчикС помощью пользовательские формы,Существует три различных типа даже связывать текста текстового поля, содержит элемент, расположенных элементов для чтения. непосредственно на листах; Диалоговые листы только |
|||
Расширенные списка со множественным что соответствует выбору при необходимости легко данных, условное форматирование, требующий применения горизонтальной же самое храненияВо всех версиях вносились не последовательно. то можно использовать элементов управления и в фигуру или |
|||
описание (заголовки, подписи, |
и выбора несмежныхНа фоне формы листа Некоторые можно использовать можно использовать эти выбором включает один |
||
противоположных действий. На |
ссылки и взаимодействовать внедренные диаграммы и прокрутки. Использовать форму |
||
шаблонов Excel. Шаблон |
EXCEL (2003, 2007, а в строку,На вкладке функции расширенного формы. объекты, которые можно текстовое поле объект рисунки) или краткие (или разрозненные). можно отобразить или только на Visual элементы управления. элемент, расположенных элементов листе или в с данными ячейку Автофильтр может сделать данных может быть — готовые файлов, 2010 — про в которой естьРазработчик Например программным способом изменять однозначно, вы |
||
с ячейкой листа |
инструкции.Представляет собой сочетание текстового скрыть линии сетки. Basic для приложенийВыводит список доступных на и выбора несмежных группе можно одновременно без использования кода поведению Дополнительно формы проще, чем перемещаться которые помогут вам |
Объекты средств рисования
2013 не знаю) активная ячейка.выберите элемент управления, можно добавить отдельные может не наверняка и динамическое отображениеИзображение поля и раскрывающегося Например, может потребоваться (VBA) пользовательские формы. компьютере элементов ActiveX, (или разрозненные). установить несколько флажков. VBA и вы листа. между столбцами, которых приступить к созданию штатный режим «Форма»_Boroda_ который хотите добавить. переключатель для каждой знаете, какой тип обновленных значений вВыводит изображение, например точечный списка. Поле со отключить линии сетки При попытке добавить которые можно добавитьПредставляет собой сочетание текстового Флажок может иметь хотите добавить элементыТак как элементы управления слишком много для книги, которая выглядит достаточно «кривой» и: Допишите еще вотНа листе щелкните место,
Работа с элементами управления и объектами на листе
буквы алфавита или элемента управления — этих объектов. рисунок, JPEG или списком компактнее обычного ячеек и затем любого из этих в настраиваемую форму поля и раскрывающегося одно из трех
-
управления листы диаграмм. и объекты хранятся одновременного отображения на так, как нужно. ограничен 32 полями так куда нужно вставить
-
можно добавить флажок просто просмотрев его.После добавления форм и GIF.
-
списка, однако чтобы применить ко всем определенного элементов ActiveX
-
(например, элементы Calendar списка. Поле со состояний: установлен (значение Например добавив элемент
-
на полотно, можно экране. Форму данных Форма содержит элементы БД.
-
Dim iLastRow As Long элемент управления. для каждого элемента
-
Определение типа элемента элементами ActiveX вРамка отобразить список элементов,
-
ячейкам один и на листе Excel Control 12.0 или
-
списком компактнее обычного
включено), снят (значение управления списком на отобразить или просматривать можно применять тогда, управления, например поляУстановитеr0_ = 12Чтобы задать свойства элемента в большом списке управления (в форме форме листа, обычноПрямоугольный объект с подписью пользователь должен щелкнуть тот же цвет с сообщением «Не проигрывателя Windows Media). списка, однако чтобы отключено) и смешенное лист и связь элементы управления и когда достаточно простой или раскрывающиеся списки,БЕСПЛАТНУЮ надстройку
Определение типа элемента управления на листе
Do While Range(«C» управления, щелкните его, дат и чисел. или ActiveX), выберите требуется выполнить точную необязательно, группы, связанные стрелку вниз. Поле либо узор или удается вставить объект». В этом диалоговом отобразить список элементов, состояние, то есть с ячейкой, можно объекты вместе с формы с текстовыми
-
которые может упростить, ссылку на которую & r0_ + удерживая нажатой клавишуПеред созданием пользовательских форм и щелкните правой настройку и изменение
-
элементы управления в со списком следует даже использовать вОднако нельзя добавить элементы окне также можно
пользователь должен щелкнуть сочетание состояний «включено» возвращать числовое значение связанного текста, не полями, в качестве для пользователей, используйте на форуме для n_) <> «» CONTROL, и выберите
-
рассмотрите возможность применения кнопкой мыши элемент положения элементов в единый блок. Как
Пользовательские формы VBA
использовать, когда требуется качестве фона листа управления ActiveX до зарегистрировать пользовательский элемент стрелку вниз. Поле и «отключено» (если для текущего положения изменяя вида сетки подписей которых используются для ввода или всех любезно предложилn_ = n_ пункт встроенных диалоговых окон,
-
управления, а затем различных способов создания правило в элементе обеспечить возможность ввода рисунок. Чтобы скрыть листы макросов XLM управления. со списком следует поддерживается выбор нескольких выбранного элемента в или таблицы данных
-
заголовки столбцов, и редактирования данных на
-
один из самых уважаемых
-
+ 1Формат элемента управления
-
доступных в Excel. Отображение контекстного меню: хорошо спроектированный понятное
управления frame сгруппированы элементов в список или отобразить линии или листы диаграммТекстовое поле использовать, когда требуется элементов). элементе управления. Затем на листе независимо когда не требуются листе. Чтобы найти
экспертов форумаLoop. Они включают функцииЕсли контекстное меню содержит форма пользователя. Ниже переключателей, флажков или и выбора из сетки, на вкладке из пользовательского интерфейса.Список со списком - обеспечить возможность вводаВыбор или отмена выбора можно использовать это от границы строк сложные или пользовательские дополнительные сведения о-iLastRow = r0_В окне VBA
команду перечислены распространенные задачи. тесно связанного содержимого.
него одного элемента.
support.office.com
Создание форм для заполнения и печати в Excel
Вид в группе Нельзя назначить макрос изменение элементов в список элементов управления с числовое значение в и столбцов. В возможности, например списки шаблонах можно загрузить,ZVI + n_Формат объекта
Шаг 1. Отображение вкладки «Разработчик».
InputBoxСвойства
-
Управление отображением линий сеткиПримечание: В этом элементе Показать снимите или непосредственно из элемента
-
Поле со списком раскрывающееся и выбора из целью указания свойств сочетании с функцией большинстве случаев, многие
-
и счетчики. читайте статью шаблонов.Cells(iLastRow, 3) =задайте такие свойства
-
и, элемент управления является при работе с Элемент управления ActiveX рамки управления отображается текущее
-
установите флажок Сетка. управления ActiveX точно — редактирования него одного элемента. или дополнительной настройки.
Шаг 2. Добавление и форматирование элементов управления содержимым
-
индекс из этих элементовMicrosoft Excel может Excel.
-
Надстройка: Me.TextBox10 элемента управления, как
-
MsgBox элементом ActiveX и элементами управления и в разделе значение независимо отПоскольку существует три разных так же, вы
-
Диалоговое окно выполнить В этом элементеВключает или отключает значение,для выбора различных управления могут быть автоматически создать встроенную
-
Формы, печати и онлайн-ли1. не имеетProstaK
Шаг 3. Защита листа, содержащего форму
-
шрифт, выравнивание и, метод Excel сейчас используется режим принятии решения оЭлементы ActiveX того, каким образом типа элементов управления можете из элемента
-
Элементы ActiveX можно использовать
-
управления отображается текущее
что соответствует выбору элементов из списка. связаны в ячейки форму данных для документ предназначен с ограничения на количество: цвет.InputBox конструктора. вывода линий сетки
Шаг 4. Проверка формы (необязательно)
: команда « оно было введено. и объектов, которые
-
управления формы. в формах на значение независимо от
-
противоположных действий. НаСписок, разрешающий несвязный выбор на листе и диапазон или таблица.
support.office.com
Форма ввода в таблицу (Макросы/Sub)
стандартные структура и полей БД,
_Boroda_Повторите действия 1–4 для, методЕсли контекстное меню содержит на готовой формеВставитьОбъединяет текстового поля со можно изменять уникальнымВыводит список доступных на листах, с или того, каким образом листе или в нескольких строк, позволяет не требует кода Форма данных отображает формат, который упрощает2. позволяет одним, Александр, спасибо! каждого добавляемого элементаGetOpenFilename
команду листа.» недоступна. Тем
списком, чтобы создать
образом, иногда невозможно
компьютере элементов ActiveX, без использования кода оно было введено.
группе можно установить выбрать один элемент,
VBA, чтобы сделать
все заголовки столбцов записывать, упорядочивать и
движением мыши изменитьВсе работает, тему
управления., методНазначить макросВыбор или Отмена выбора
не менее можно поле со списком.
excelworld.ru
создание в Excel 2010 формы для ввода данных в форматированную таблицу
точно определить тип которые можно добавить VBA и наОбъединяет текстового поля со несколько флажков. Флажок расположенные рядом элементы, их работы. Можно в виде подписей
изменение сведений. размеры формы, можно закрывать.В менюGetSaveAsFilename, это элемент управления элементов управления с
добавить элемент управления Поле со списком элемента управления по в настраиваемую форму пользовательские формы VBA. списком, чтобы создать может иметь одно а также разрозненные настроить свойства, определяющие в одном диалоговомПечатной формы, содержащие инструкции,3. содержит необходимыйИринаСервиси объект Dialogs формы. целью указания свойств в диалоговом окне более компактную чем
его внешнему виду. (например, элементы Calendar Как правило используйте поле со списком. из трех состояний: элементы. ли элемент управления окне. Каждая метка форматирование, меток и минимум инструментов для: Здравствуйте, подскажите пожалуйста:наведите указатель на
объектаСовет:
или дополнительной настройки.
Другие элементы управления поле со списком, Чтобы определить тип Control 12.0 или элементы управления ActiveX, Поле со списком установлен (значение включено),Тем не менее эти
расположенном свободно или имеет смежных пустое пустого пространства для работы по ведению можно ли в пунктApplication Чтобы отобразить правильное контекстноеИзменение текста элемента управления,, выбрав
но пользователь должен
элемента управления (элемент проигрывателя Windows Media). при необходимости более
более компактную чем снят (значение отключено) элементы управления невозможно
перемещение и изменяет текстовое поле, в написания или ввод БД.
planetaexcel.ru
excel 2010 создать
Тема 10. Создание форм в MS Excel с использованием элементов
управления.
КРАТКАЯ
СПРАВКА
В
работе многих предприятий постоянно возникает необходимость быстро подсчитать
стоимость какого-либо заказа. Это может быть, например, сборка компьютера
заказной конфигурации, печать издания в типографии или смета на ремонт
квартиры. Для удобства и наглядности в этом случае лучше всего создавать формы.
MS Excel предоставляет
возможность создавать формы, предназначенные для печати или использования в
интерактивном режиме. Интерактивные формы могут содержать элементы управления,
например, переключатели и раскрывающиеся списки. Можно настроить защиту
интерактивной формы, установив параметры, позволяющие вводить данные только в
определенные ячейки, при этом введенные данные можно будет проверять, что
позволит предотвратить ввод неверных данных.
Таким
образом, формы создаются на рабочем листе MS Excel и оформляются
элементами управления, которые вызываются командой Вид/Панели
инструментов/Формы.
При
настройке элементов управления часто используют функцию ИНДЕКС.
Эта
функция возвращает значение или ссылку на значение из таблицы или диапазона.
Функция ИНДЕКС имеет две синтаксические формы: ссылка и массив. Если первый
аргумент функции ИНДЕКС является массивом констант, лучше использовать форму
массива.
ИНДЕКС(массив;номер_строки;номер_столбца)
Массив —
диапазон ячеек или массив констант.
Если массив
содержит только одну строку или один столбец, аргумент «номер_строки» (или,
соответственно, «номер_столбца») не является обязательным.
Если массив
занимает больше одной строки и больше одного столбца, а из аргументов
«номер_строки» и «номер_столбца» задан только один, то функция ИНДЕКС
возвращает массив, состоящий из целой строки или целого столбца аргумента
«массив».
Номер_строки —
номер строки в массиве, из которой требуется возвратить значение. Если аргумент
«номер_строки» опущен, аргумент «номер_столбца» является обязательным.
Номер_столбца —
номер столбца в массиве, из которого требуется возвратить значение. Если
аргумент «номер_столбца» опущен, аргумент «номер_строки» является обязательным.
Замечания:
Если используются
оба аргумента — и «номер_строки», и «номер_столбца», — то функция ИНДЕКС
возвращает значение, находящееся в ячейке на пересечении указанных строки и
столбца.
Если задать для
аргумента «номер_строки» или «номер_столбца» значение 0, функция ИНДЕКС
возвратит массив значений для целого столбца или, соответственно, целой строки.
Чтобы использовать массив значений, введите функцию ИНДЕКС как формулу массива (Формула массива. Формула, выполняющая несколько
вычислений над одним или несколькими наборами значений, а затем возвращающая
один или несколько результатов. Формулы массива заключены в фигурные скобки { }
и вводятся нажатием клавиш CTRL+SHIFT+ВВОД.) в горизонтальный
диапазон ячеек для строки и в вертикальный для столбца. Чтобы ввести формулу
массива, нажмите клавиши CTRL+SHIFT+ВВОД.
Значения
аргументов «номер_строки» и «номер_столбца» должны указывать на ячейку внутри
заданного массива; в противном случае функция ИНДЕКС возвращает значение ошибки
#ССЫЛ!.
Например:
Дана
таблица (рис.10.1.)
Рис.10.1.
Таблица с данными
Для
этих данных функция ИНДЕКС будет обозначать:
=ИНДЕКС(A2:B3;2;2) |
Значение |
=ИНДЕКС(A2:B3;2;1) |
Значение |
Примеры
выполненных заданий:
Пример
№1:
Создать
приложение «Смета» для комплектации встраиваемой техники для кухни. Приложение
должно обеспечить удобный ввод данных с использованием элементов управления:
полей со списком, переключателей, флажков, счетчиков, т.е. иметь следующий вид
(рис.10.2.):
Рис.10.2.
Вид готовой формы.
Решение:
Разработку
сметы следует начать с создания и оформления листов.
Оформим
лист «Смета» (рис.10.3.):
Рис.10.3.
Лист «Смета»
Оформим
лист «Холодильники» (рис.10.4.):
Наименование |
Цена |
Производитель |
не |
$0 |
нет |
ARISTON |
$325 |
Италия |
ARISTON |
$325 |
Италия |
ARISTON |
$337 |
Италия |
ARISTON |
$457 |
Италия |
ARISTON |
$559 |
Италия |
ARISTON |
$559 |
Италия |
ARISTON |
$578 |
Италия |
ARISTON |
$604 |
Италия |
ARISTON |
$604 |
Италия |
ARISTON |
$742 |
Италия |
BOSCH |
$568 |
Германия |
BOSCH |
$630 |
Германия |
BOSCH |
$676 |
Германия |
Рис.10.4.
Лист «Холодильники»
Оформим
лист «Духовки» (рис.10.5.):
Наименование |
Цена |
Производитель |
не |
$0 |
нет |
ARDO |
$196 |
Италия |
ARDO |
$209 |
Италия |
ARISTON |
$216 |
Италия |
ARISTON |
$221 |
Италия |
ARISTON |
$488 |
Италия |
BOSCH |
$761 |
Германия |
BOSCH |
$1 936 |
Германия |
FAGOR |
$397 |
Испания |
KAISER |
$740 |
Германия |
KAISER |
$472 |
Германия |
KAISER |
$478 |
Германия |
KAISER |
$498 |
Германия |
SIEMENS |
$643 |
Германия |
SIEMENS |
$723 |
Германия |
SIEMENS |
$1 095 |
Германия |
Рис.10.5.
Лист «Духовки»
Оформим
лист «Посудомоечные машины» (рис.10.6.):
Наименование |
Цена |
Производитель |
не |
$0 |
нет |
ARDO |
$213 |
Италия |
ARDO |
$351 |
Италия |
ARISTON |
$390 |
Италия |
ARISTON |
$391 |
Италия |
ARISTON |
$396 |
Италия |
ARISTON |
$437 |
Италия |
ARDO |
$437 |
Италия |
ARISTON |
$458 |
Италия |
ARISTON |
$550 |
Италия |
Рис.10.6.
Лист «Посудомоечные машины»
Оформим
лист «Стиральные машины» (рис.10.7.):
Наименование |
Цена |
Производитель |
не |
$0 |
нет |
ARISTON |
$550 |
Италия |
SIEMENS |
$1 424 |
Германия |
Рис.10.7.
Лист «Стиральные машины»
На
листе «Смета» в ячейке В3 определить текущую дату с помощью функции =СЕГОДНЯ(),
а в ячейку D3 ввести текущий
курс доллара, например 28,8 рублей.
Создание
формы и настройка элементов управления
1. Необходимо
отобразить панель инструментов «Форма» (Вид – Панели инструментов – Форма) и
установить соответствующие элементы управления следующим образом:
2. На лист «Смета» в
строке 5 напротив Холодильник следует поместить элемент управления Поле
со списком (рис.10.8.), он будет использован для выбора марки холодильника
из справочника, расположенного на листе «Холодильники».
Рис.10.8.
Образец расположения элемента управления «Поле со списком»
Для
настройки элемента управления следует выбрать команду контекстного меню Формат
объекта
В
окне «Формат элемента управления» выбрать вкладку Элемент управления и
установить следующие параметры (рис.10.9.):
Рис.10.9.
Образец заполнения окна «Формат элементов управления»
Для
остальных видов встраиваемой техники установить и настроить поля со списком
аналогично.
3. В ячейку В5
ввести формулу вывода стоимости выбранной техники: =ИНДЕКС(Холодильники!В2:В15;Е5)
В
ячейки В7, В9 и В11 ввести аналогичные формулы.
4. В ячейку В13
ввести формулу вывода общей стоимости выбранной техники:
=СУММА(В5;В7;В9;В11)
5. Установить 2
элемента Переключатель напротив Гарантии и сделать обрамление
элементом Рамка (рис.10.10.)
Рис.10.10.
Образец оформления элементов управления
Для
настройки элемента управления Переключатель следует выбрать команду
контекстного меню Формат объекта
В
окне «Формат элемента управления» выбрать вкладку Элемент управления и
установить следующие параметры (рис.10.11.):
Рис.10.11.
Образец заполнения окна «Формат элемента управления»
Измените
тексты переключателей и рамки на соответствующие образцу.
6. В ячейку В15
ввести формулу вычисления стоимости гарантии (гарантия 6 месяцев – бесплатная,
а гарантия 1 год – 10% от стоимости комплекта): =ЕСЛИ(Е15=1;0;В13*10%)
7. Установить
элемент Флажок напротив Доставки и изменить текст надписи на
«Нужна» (рис.10.12.):
Рис.10.12.
Образец элемента управления «Флажок»
Для
настройки элемента управления Флажок следует выбрать команду
контекстного меню Формат объекта
В
окне «Формат элемента управления» выбрать вкладку Элемент управления и
установить следующие параметры (рис.10.13.):
Рис.10.13. Образец
заполнения окна «Формат элемента управления»
8. В ячейку В17
ввести формулу для вычисления надбавки за доставку (например 10$): =ЕСЛИ(Е17=ИСТИНА;10;0)
9. Установить
элемент Счетчик напротив Скидки (рис.10.14.):
Рис.10.14.
Элемент управления «Счетчик»
Для
настройки элемента управления Счетчик следует выбрать команду
контекстного меню Формат объекта
В
окне «Формат элемента управления» выбрать вкладку Элемент управления и
установить следующие параметры (рис.10.15.):
Рис.10.15. Образец
заполнения окна «Формат элемента управления»
10. В ячейку В19
ввести формулу для вычисления размера скидки в процентах: =Е19/100
11. В ячейку В21
ввести формулу для вычисления общей стоимости (в долларах) выбранного комплекта
техники:
=СУММ(В13;В15;В17)*(100%-В19)
12. В ячейку В23
ввести формулу для вычисления суммы в рублях: =В21*D3
13.
В заключении следует скрыть столбец Е, содержащий результаты работы элементов
управления.
Для
этого необходимо выделить любую ячейку столбца и выполнить команду [Формат] à [Столбец] à [Скрыть]
Скачано с www.znanio.ru