Окно для ввода текста в excel

Содержание

  • Применение инструментов заполнения
    • Способ 1: встроенный объект для ввода данных Excel
    • Способ 2: создание пользовательской формы
  • Вопросы и ответы

Форма в Microsoft Excel

Для облегчения ввода данных в таблицу в Excel можно воспользоваться специальными формами, которые помогут ускорить процесс заполнения табличного диапазона информацией. В Экселе имеется встроенный инструмент позволяющий производить заполнение подобным методом. Также пользователь может создать собственный вариант формы, которая будет максимально адаптирована под его потребности, применив для этого макрос. Давайте рассмотрим различные варианты использования этих полезных инструментов заполнения в Excel.

Применение инструментов заполнения

Форма заполнения представляет собой объект с полями, наименования которых соответствуют названиям колонок столбцов заполняемой таблицы. В эти поля нужно вводить данные и они тут же будут добавляться новой строкой в табличный диапазон. Форма может выступать как в виде отдельного встроенного инструмента Excel, так и располагаться непосредственно на листе в виде его диапазона, если она создана самим пользователем.

Теперь давайте рассмотрим, как пользоваться этими двумя видами инструментов.

Способ 1: встроенный объект для ввода данных Excel

Прежде всего, давайте узнаем, как применять встроенную форму для ввода данных Excel.

  1. Нужно отметить, что по умолчанию значок, который её запускает, скрыт и его нужно активировать. Для этого переходим во вкладку «Файл», а затем щелкаем по пункту «Параметры».
  2. Переход в параметры в Microsoft Excel

  3. В открывшемся окне параметров Эксель перемещаемся в раздел «Панель быстрого доступа». Большую часть окна занимает обширная область настроек. В левой её части находятся инструменты, которые могут быть добавлены на панель быстрого доступа, а в правой – уже присутствующие.

    В поле «Выбрать команды из» устанавливаем значение «Команды не на ленте». Далее из списка команд, расположенного в алфавитном порядке, находим и выделяем позицию «Форма…». Затем жмем на кнопку «Добавить».

  4. Добавление инструмента форма на панель быстрого доступа в Microsoft Excel

  5. После этого нужный нам инструмент отобразится в правой части окна. Жмем на кнопку «OK».
  6. Инструмент форма добавлен на панель быстрого доступа в Microsoft Excel

  7. Теперь данный инструмент располагается в окне Excel на панели быстрого доступа, и мы им можем воспользоваться. Он будет присутствовать при открытии любой книги данным экземпляром Excel.
  8. Инструмент форма отображается на панеле быстрого доступа в Microsoft Excel

  9. Теперь, чтобы инструмент понял, что именно ему нужно заполнять, следует оформить шапку таблицы и записать любое значение в ней. Пусть табличный массив у нас будет состоять из четырех столбцов, которые имеют названия «Наименование товара», «Количество», «Цена» и «Сумма». Вводим данные названия в произвольный горизонтальный диапазон листа.
  10. Шапка таблицы в Microsoft Excel

  11. Также, чтобы программа поняла, с каким именно диапазонам ей нужно будет работать, следует ввести любое значение в первую строку табличного массива.
  12. первое значение в таблице в Microsoft Excel

  13. После этого выделяем любую ячейку заготовки таблицы и щелкаем на панели быстрого доступа по значку «Форма…», который мы ранее активировали.
  14. Запуск формы в Microsoft Excel

  15. Итак, открывается окно указанного инструмента. Как видим, данный объект имеет поля, которые соответствуют названиям столбцов нашего табличного массива. При этом первое поле уже заполнено значением, так как мы его ввели вручную на листе.
  16. Форма открыта в Microsoft Excel

  17. Вводим значения, которые считаем нужными и в остальные поля, после чего жмем на кнопку «Добавить».
  18. Ввод значений в форму в Microsoft Excel

  19. После этого, как видим, в первую строку таблицы были автоматически перенесены введенные значения, а в форме произошел переход к следующему блоку полей, который соответствуют второй строке табличного массива.
  20. Значения перенесы в таблицу в Microsoft Excel

    Lumpics.ru

  21. Заполняем окно инструмента теми значениями, которые хотим видеть во второй строке табличной области, и снова щелкаем по кнопке «Добавить».
  22. Добавление второй строки в таблицу через форму в Microsoft Excel

  23. Как видим, значения второй строчки тоже были добавлены, причем нам даже не пришлось переставлять курсор в самой таблице.
  24. Вторая строка заполнена в таблице в Microsoft Excel

  25. Таким образом, заполняем табличный массив всеми значениями, которые хотим в неё ввести.
  26. Все значения в таблицу введены в Microsoft Excel

  27. Кроме того, при желании, можно производить навигацию по ранее введенным значениям с помощью кнопок «Назад» и «Далее» или вертикальной полосы прокрутки.
  28. Навигация по форме в Microsoft Excel

  29. При необходимости можно откорректировать любое значение в табличном массиве, изменив его в форме. Чтобы изменения отобразились на листе, после внесения их в соответствующий блок инструмента, жмем на кнопку «Добавить».
  30. Корректировка данных в форме в Microsoft Excel

  31. Как видим, изменение сразу произошло и в табличной области.
  32. Изменение произведено в таблице в Microsoft Excel

  33. Если нам нужно удалить, какую-то строчку, то через кнопки навигации или полосу прокрутки переходим к соответствующему ей блоку полей в форме. После этого щелкаем по кнопке «Удалить» в окошке инструмента.
  34. Удаление строки через форму в Microsoft Excel

  35. Открывается диалоговое окно предупреждения, в котором сообщается, что строка будет удалена. Если вы уверены в своих действиях, то жмите на кнопку «OK».
  36. Подтверждение удаления строки в Microsoft Excel

  37. Как видим, строчка была извлечена из табличного диапазона. После того, как заполнение и редактирование закончено, можно выходить из окна инструмента, нажав на кнопку «Закрыть».
  38. Закрытие формы в Microsoft Excel

  39. После этого для предания табличному массиву более наглядного визуального вида можно произвести форматирование.

Таблица отформатированв в Microsoft Excel

Способ 2: создание пользовательской формы

Кроме того, с помощью макроса и ряда других инструментов существует возможность создать собственную пользовательскую форму для заполнения табличной области. Она будет создаваться прямо на листе, и представлять собой её диапазон. С помощью данного инструмента пользователь сам сможет реализовать те возможности, которые считает нужными. По функционалу он практически ни в чем не будет уступать встроенному аналогу Excel, а кое в чем, возможно, превосходить его. Единственный недостаток состоит в том, что для каждого табличного массива придется составлять отдельную форму, а не применять один и тот же шаблон, как это возможно при использовании стандартного варианта.

  1. Как и в предыдущем способе, прежде всего, нужно составить шапку будущей таблицы на листе. Она будет состоять из пяти ячеек с именами: «№ п/п», «Наименование товара», «Количество», «Цена», «Сумма».
  2. Шапка таблицы создана в Microsoft Excel

  3. Далее нужно из нашего табличного массива сделать так называемую «умную» таблицу, с возможностью автоматического добавления строчек при заполнении соседних диапазонов или ячеек данными. Для этого выделяем шапку и, находясь во вкладке «Главная», жмем на кнопку «Форматировать как таблицу» в блоке инструментов «Стили». После этого открывается список доступных вариантов стилей. На функционал выбор одного из них никак не повлияет, поэтому выбираем просто тот вариант, который считаем более подходящим.
  4. Создание умной таблицы в Microsoft Excel

  5. Затем открывается небольшое окошко форматирования таблицы. В нем указан диапазон, который мы ранее выделили, то есть, диапазон шапки. Как правило, в данном поле заполнено все верно. Но нам следует установить галочку около параметра «Таблица с заголовками». После этого жмем на кнопку «OK».
  6. Окошко форматирования таблицы в Microsoft Excel

  7. Итак, наш диапазон отформатирован, как «умная» таблица, свидетельством чему является даже изменение визуального отображения. Как видим, помимо прочего, около каждого названия заголовка столбцов появились значки фильтрации. Их следует отключить. Для этого выделяем любую ячейку «умной» таблицы и переходим во вкладку «Данные». Там на ленте в блоке инструментов «Сортировка и фильтр» щелкаем по значку «Фильтр».
    Отключение фильтра через вкладку Данные в Microsoft Excel

    Существует ещё один вариант отключения фильтра. При этом не нужно даже будет переходить на другую вкладку, оставаясь во вкладке «Главная». После выделения ячейки табличной области на ленте в блоке настроек «Редактирование» щелкаем по значку «Сортировка и фильтр». В появившемся списке выбираем позицию «Фильтр».

  8. Отключение фильтра через вкладку Главная в Microsoft Excel

  9. Как видим, после этого действия значки фильтрации исчезли из шапки таблицы, как это и требовалось.
  10. Фильтр снят в Microsoft Excel

  11. Затем нам следует создать саму форму ввода данных. Она тоже будет представлять собой своего рода табличный массив, состоящий из двух столбцов. Наименования строк данного объекта будут соответствовать именам столбцов основной таблицы. Исключение составляют столбцы «№ п/п» и «Сумма». Они будут отсутствовать. Нумерация первого из них будет происходить при помощи макроса, а расчет значений во втором будет производиться путем применения формулы умножения количества на цену.

    Второй столбец объекта ввода данных оставим пока что пустым. Непосредственно в него позже будут вводиться значения для заполнения строк основного табличного диапазона.

  12. Форма ввода данных на листе в Microsoft Excel

  13. После этого создаем ещё одну небольшую таблицу. Она будет состоять из одного столбца и в ней разместится список товаров, которые мы будем выводить во вторую колонку основной таблицы. Для наглядности ячейку с заголовком данного перечня («Список товаров») можно залить цветом.
  14. Таблица со списком товаров в Microsoft Excel

  15. Затем выделяем первую пустую ячейку объекта ввода значений. Переходим во вкладку «Данные». Щелкаем по значку «Проверка данных», который размещен на ленте в блоке инструментов «Работа с данными».
  16. Переход к проверке данных в Microsoft Excel

  17. Запускается окно проверки вводимых данных. Кликаем по полю «Тип данных», в котором по умолчанию установлен параметр «Любое значение».
  18. Окно проверки вводимых значений в Microsoft Excel

  19. Из раскрывшихся вариантов выбираем позицию «Список».
  20. Выбор списка в окне проверки вводимых значений в Microsoft Excel

  21. Как видим, после этого окно проверки вводимых значений несколько изменило свою конфигурацию. Появилось дополнительное поле «Источник». Щелкаем по пиктограмме справа от него левой клавишей мыши.
  22. Переход к выбору источника в окне проверки вводимых значений в Microsoft Excel

  23. Затем окно проверки вводимых значений сворачивается. Выделяем курсором с зажатой левой клавишей мыши перечень данных, которые размещены на листе в дополнительной табличной области «Список товаров». После этого опять жмем на пиктограмму справа от поля, в котором появился адрес выделенного диапазона.
  24. Адрес диапазона внесен в поле в Microsoft Excel

  25. Происходит возврат к окошку проверки вводимых значений. Как видим, координаты выделенного диапазона в нем уже отображены в поле «Источник». Кликаем по кнопке «OK» внизу окна.
  26. Закрытие окна проверки вводимых значений в Microsoft Excel

  27. Теперь справа от выделенной пустой ячейки объекта ввода данных появилась пиктограмма в виде треугольника. При клике на неё открывается выпадающий список, состоящий из названий, которые подтягиваются из табличного массива «Список товаров». Произвольные данные в указанную ячейку теперь внести невозможно, а только можно выбрать из представленного списка нужную позицию. Выбираем пункт в выпадающем списке.
  28. Список со значениями в Microsoft Excel

  29. Как видим, выбранная позиция тут же отобразилась в поле «Наименование товара».
  30. Выбранная позиция отобразилась в ячейке в Microsoft Excel

  31. Далее нам нужно будет присвоить имена тем трем ячейкам формы ввода, куда мы будем вводить данные. Выделяем первую ячейку, где уже установлено в нашем случае наименование «Картофель». Далее переходим в поле наименования диапазонов. Оно расположено в левой части окна Excel на том же уровне, что и строка формул. Вводим туда произвольное название. Это может быть любое наименование на латинице, в котором нет пробелов, но лучше все-таки использовать названия близкие к решаемым данным элементом задачам. Поэтому первую ячейку, в которой содержится название товара, назовем «Name». Пишем данное наименование в поле и жмем на клавишу Enter на клавиатуре.
  32. Наименование первой ячейки в Microsoft Excel

  33. Точно таким же образом присваиваем ячейке, в которую будем вводить количество товара, имя «Volum».
  34. Наименование второй ячейки в Microsoft Excel

  35. А ячейке с ценой – «Price».
  36. Наименование третьей ячейки в Microsoft Excel

  37. После этого точно таким же образом даем название всему диапазону из вышеуказанных трех ячеек. Прежде всего, выделим, а потом дадим ему наименование в специальном поле. Пусть это будет имя «Diapason».
  38. присвоение наименования диапазону в Microsoft Excel

  39. После последнего действия обязательно сохраняем документ, чтобы названия, которые мы присвоили, смог воспринимать макрос, созданный нами в дальнейшем. Для сохранения переходим во вкладку «Файл» и кликаем по пункту «Сохранить как…».
  40. Сохранение книги в Microsoft Excel

  41. В открывшемся окне сохранения в поле «Тип файлов» выбираем значение «Книга Excel с поддержкой макросов (.xlsm)». Далее жмем на кнопку «Сохранить».
  42. Окно сохранения файла в Microsoft Excel

  43. Затем вам следует активировать работу макросов в своей версии Excel и включить вкладку «Разработчик», если вы это до сих пор не сделали. Дело в том, что обе эти функции по умолчанию в программе отключены, и их активацию нужно выполнять принудительно в окне параметров Excel.
  44. После того, как вы сделали это, переходим во вкладку «Разработчик». Кликаем по большому значку «Visual Basic», который расположен на ленте в блоке инструментов «Код».
  45. Переход в редактор макросов в Microsoft Excel

  46. Последнее действие приводит к тому, что запускается редактор макросов VBA. В области «Project», которая расположена в верхней левой части окна, выделяем имя того листа, где располагаются наши таблицы. В данном случае это «Лист 1».
  47. Редактор макросов в Microsoft Excel

  48. После этого переходим к левой нижней области окна под названием «Properties». Тут расположены настройки выделенного листа. В поле «(Name)» следует заменить кириллическое наименование («Лист1») на название, написанное на латинице. Название можно дать любое, которое вам будет удобнее, главное, чтобы в нем были исключительно символы латиницы или цифры и отсутствовали другие знаки или пробелы. Именно с этим именем будет работать макрос. Пусть в нашем случае данным названием будет «Producty», хотя вы можете выбрать и любое другое, соответствующее условиям, которые были описаны выше.

    В поле «Name» тоже можно заменить название на более удобное. Но это не обязательно. При этом допускается использование пробелов, кириллицы и любых других знаков. В отличие от предыдущего параметра, который задает наименование листа для программы, данный параметр присваивает название листу, видимое пользователю на панели ярлыков.

    Как видим, после этого автоматически изменится и наименование Листа 1 в области «Project», на то, которое мы только что задали в настройках.

  49. Изменение наименования листа в редакторе макросов в Microsoft Excel

  50. Затем переходим в центральную область окна. Именно тут нам нужно будет записать сам код макроса. Если поле редактора кода белого цвета в указанной области не отображается, как в нашем случае, то жмем на функциональную клавишу F7 и оно появится.
  51. Поле в редкторе макросов отобразилось в Microsoft Excel

  52. Теперь для конкретно нашего примера нужно записать в поле следующий код:


    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» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

    Наименование для листа в Microsoft Excel

    Теперь рассмотрим такую строку:

    nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

    Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

    Второй столбец таблицы в Microsoft Excel

    Далее рассмотрим строку

    If .Range("A2").Value = "" And .Range("B2").Value = "" Then

    «A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

    Две первые ячейки таблицы с данными в Microsoft Excel

    Переходим к строке

    Producty.Range("Name").Copy

    В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

    Имя поля наименования товара в форме ввода в Microsoft Excel

    В строках


    .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» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

    Наименование полей количество и цена в Microsoft Excel

    В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

    Колонки в таблице в Microsoft Excel

    В строке производится умножение количества товара на его цену:

    .Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

    Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

    Колонка для вывода суммы в Microsoft Excel

    В этом выражении выполняется автоматическая нумерация строк:


    If nextRow > 2 Then
    Range("A2").Select
    Selection.AutoFill Destination:=Range("A2:A" & nextRow)
    Range("A2:A" & nextRow).Select
    End If

    Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты « — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

    Столбец с нумерацией в Microsoft Excel

    В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

    .Range("Diapason").ClearContents

    Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

    Наименование полей для ввода данных в Microsoft Excel

    Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

    После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.

  53. Код в редакторе макросов в Microsoft Excel

  54. После этого возвращаемся на лист Excel. Теперь нам следует разместить кнопку, которая будет активировать созданный макрос. Для этого переходим во вкладку «Разработчик». В блоке настроек «Элементы управления» на ленте кликаем по кнопке «Вставить». Открывается перечень инструментов. В группе инструментов «Элементы управления формы» выбираем самый первый – «Кнопка».
  55. Выбор элемента управления в Microsoft Excel

  56. Затем с зажатой левой клавишей мыши обводим курсором область, где хотим разместить кнопку запуска макроса, который будет производить перенос данных из формы в таблицу.
  57. Указание границ кнопки в Microsoft Excel

  58. После того, как область обведена, отпускаем клавишу мыши. Затем автоматически запускается окно назначения макроса объекту. Если в вашей книге применяется несколько макросов, то выбираем из списка название того, который мы выше создавали. У нас он называется «DataEntryForm». Но в данном случае макрос один, поэтому просто выбираем его и жмем на кнопку «OK» внизу окна.
  59. Окно назначения макроса объекту в Microsoft Excel

  60. После этого можно переименовать кнопку, как вы захотите, просто выделив её текущее название.
    Переименовывание кнопки в Microsoft Excel

    В нашем случае, например, логично будет дать ей имя «Добавить». Переименовываем и кликаем мышкой по любой свободной ячейке листа.

  61. Кнопка переименована в Microsoft Excel

  62. Итак, наша форма полностью готова. Проверим, как она работает. Вводим в её поля необходимые значения и жмем на кнопку «Добавить».
  63. Ввод данных в форму в Microsoft Excel

  64. Как видим, значения перемещены в таблицу, строке автоматически присвоен номер, сумма посчитана, поля формы очищены.
  65. Значения первой строки внесены в таблицу в Microsoft Excel

  66. Повторно заполняем форму и жмем на кнопку «Добавить».
  67. Повторный ввод данных в форму в Microsoft Excel

  68. Как видим, и вторая строка также добавлена в табличный массив. Это означает, что инструмент работает.

Вторая строка добавлена в таблицу в Microsoft Excel

Читайте также:
Как создать макрос в Excel
Как создать кнопку в Excel

В Экселе существует два способа применения формы заполнения данными: встроенная и пользовательская. Применение встроенного варианта требует минимум усилий от пользователя. Его всегда можно запустить, добавив соответствующий значок на панель быстрого доступа. Пользовательскую форму нужно создавать самому, но если вы хорошо разбираетесь в коде VBA, то сможете сделать этот инструмент максимально гибким и подходящим под ваши нужды.

Теперь для конкретно нашего примера нужно записать в поле следующий код:


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» редактора макросов. Естественно, это нужно делать только в том случае, если вы назвали лист по-другому.

как в excel сделать окно для ввода данных

Теперь рассмотрим такую строку:

nextRow = Producty.Cells(Producty.Rows.Count, 2).End(xlUp).Offset(1, 0).Row

Цифра «2» в данной строчке означает второй столбец листа. Именно в этом столбце находится колонка «Наименование товара». По ней мы будем считать количество рядов. Поэтому, если в вашем случае аналогичный столбец имеет другой порядок по счету, то нужно ввести соответствующее число. Значение «End(xlUp).Offset(1, 0).Row» в любом случае оставляем без изменений.

как в excel сделать окно для ввода данных

Далее рассмотрим строку

If .Range("A2").Value = "" And .Range("B2").Value = "" Then

«A2» — это координаты первой ячейки, в которой будет выводиться нумерация строк. «B2» — это координаты первой ячейки, по которой будет производиться вывод данных («Наименование товара»). Если они у вас отличаются, то введите вместо этих координат свои данные.

как в excel сделать окно для ввода данных

Переходим к строке

Producty.Range("Name").Copy

В ней параметр «Name» означат имя, которое мы присвоили полю «Наименование товара» в форме ввода.

как в excel сделать окно для ввода данных

В строках


.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» означают названия, которые мы присвоили полям «Количество» и «Цена» в той же форме ввода.

как в excel сделать окно для ввода данных

В этих же строках, которые мы указали выше, цифры «2», «3», «4», «5» означают номера столбцов на листе Excel, соответствующих колонкам «Наименование товара», «Количество», «Цена» и «Сумма». Поэтому, если в вашем случае таблица сдвинута, то нужно указать соответствующие номера столбцов. Если столбцов больше, то по аналогии нужно добавить её строки в код, если меньше – то убрать лишние.

как в excel сделать окно для ввода данных

В строке производится умножение количества товара на его цену:

.Cells(nextRow, 5).Value = Producty.Range("Volum").Value * Producty.Range("Price").Value

Результат, как видим из синтаксиса записи, будет выводиться в пятый столбец листа Excel.

как в excel сделать окно для ввода данных

В этом выражении выполняется автоматическая нумерация строк:


If nextRow > 2 Then
Range("A2").Select
Selection.AutoFill Destination:=Range("A2:A" & nextRow)
Range("A2:A" & nextRow).Select
End If

Все значения «A2» означают адрес первой ячейки, где будет производиться нумерация, а координаты «A» — адрес всего столбца с нумерацией. Проверьте, где именно будет выводиться нумерация в вашей таблице и измените данные координаты в коде, если это необходимо.

как в excel сделать окно для ввода данных

В строке производится очистка диапазона формы ввода данных после того, как информация из неё была перенесена в таблицу:

.Range("Diapason").ClearContents

Не трудно догадаться, что («Diapason») означает наименование того диапазона, который мы ранее присвоили полям для ввода данных. Если вы дали им другое наименование, то в этой строке должно быть вставлено именно оно.

как в excel сделать окно для ввода данных

Дальнейшая часть кода универсальна и во всех случаях будет вноситься без изменений.

После того, как вы записали код макроса в окно редактора, следует нажать на значок сохранения в виде дискеты в левой части окна. Затем можно его закрывать, щелкнув по стандартной кнопке закрытия окон в правом верхнем углу.

Здесь можно получить ответы на вопросы по Microsoft Excel 58571 479426

11 Ноя 2018 17:30:52

44519 357825

29 Янв 2017 17:28:40

Лучшие избранные темы с основного форума 14 80

28 Июн 2018 15:25:11

Если вы — счастливый обладатель Mac 😉 220 1066

11 Ноя 2018 04:30:45

Раздел для размещения платных вопросов, проектов и задач и поиска исполнителей для них. 2144 13665

11 Ноя 2018 14:53:34

Если Вы скачали или приобрели надстройку PLEX для Microsoft Excel и у Вас есть вопросы или пожелания — Вам сюда. 317 1616

9 Ноя 2018 18:27:42

823 11969

10 Ноя 2018 22:24:20

Обсуждение функционала, правил и т.д. 270 3481

30 Окт 2018 15:01:36

Сейчас на форуме (гостей: 1208, пользователей: 18, из них скрытых: 4) , , , , , , , , , , , , ,

Сегодня отмечают день рождения (29), (36), (46), (27), (35), (32)

Всего зарегистрированных пользователей: 83917

Приняло участие в обсуждении: 32180

Всего тем: 106878

Опубликовано 29 мая 2014
Рубрика: Справочник Excel | 12 комментариев

Множество разнообразных компьютерных программ, включая «самую главную программу в мире» — MS Windows,  ведут общение с пользователем при помощи выпадающих диалоговых окон. Эти окна представляют собой формы, состоящие из надписей, изображений, полей для…

…ввода данных, флажков, переключателей, списков, кнопок и прочих элементов управления.

Задача формы – выпадающего окна – предоставить пользователю простой, понятный и удобный интерфейс, который обеспечит в режиме диалога возможность эффективно осуществлять ввод данных пользователем в программу и вывод программой результатов для считывания пользователем.

Стандартно при работе со значительными объемами информации вне зависимости от того, какое программное обеспечение используется, поступают следующим образом:

1. Создают таблицы базы данных.

2. Создают формы для ввода данных в таблицы.

3. Создают необходимые запросы к таблицам базы данных.

4. Формируют отчеты на основании запросов для вывода на печать.

В предыдущих статьях этого цикла мы рассмотрели создание таблицы базы данных и познакомились с некоторыми механизмами создания запросов и отчетов: с сортировкой данных, с автофильтром и расширенным фильтром.

В этой (пятой в цикле) статье рассмотрим п.2 вышеизложенного алгоритма – вызов и использование формы для ввода данных.

Для чего нужна какая-то форма?! Бери таблицу — и пиши прямо в нее очередную строку информации! Зачем еще что-то выдумывать?

Мы так и делали при создании нашего небольшого и простого примера базы данных БД2 «Выпуск металлоконструкций участком №2», с которым работаем во всех статьях этого цикла.

Таблица маленькая, все столбцы-поля, относящиеся к одной записи, помещаются на экран и доступны взгляду пользователя без использования полос прокрутки. Но так бывает редко! Реальные таблицы баз данных часто содержат не шесть, как в нашем примере, а десять, двадцать и более столбцов-полей!

При вводе данных в такие таблицы Excel «напрямую» при заполнении строк для перемещения по столбцам необходимо каждый раз нажимать клавишу «Tab», а для перехода к новой записи на новую строку пользоваться прокруткой и мышью или клавишами «Enter» и «

Рубрика Excel

Также статьи о работе с данными в Экселе:

  • Cортировка данных в списке Excel
  • Способы фильтрации данных в Excel
  • Расширенный фильтр в MS Excel
  • Как объединить данные в Экселе?

При заполнении таблиц в Экселе можно воспользоваться формой ввода данных, которая должна значительно упростить весь процесс. Форма ввода данных в таблицы Excel позволит видеть сразу все колонки, которые необходимо заполнить, что особенно удобно при больших таблицах.

По умолчанию в Экселе 2010 и выше в меню нет возможности вызвать форму ввода и нам необходимо на панель быстрого доступа вытащить соответствующий значок. Для этого нажимаем правой кнопкой мыши на панель быстрого доступа, и в меню выбираем «Настройка панели быстрого доступа…».

как в excel сделать окно для ввода данных

В окошке «Параметры Excel» в левом меню должно быть выбрано «Панель быстрого доступа», в графе «Выбрать команды из…» выбрать «Команды на ленте». Далее в списке ниже необходимо найти графу «Форма», и кнопкой «Добавить» добавить значок на панель быстрого доступа. После чего нажать «Ок».

как в excel сделать окно для ввода данных

Возможность создать форму для ввода данных в Excel мы сделали, но теперь осталось разобраться, в каких случаях она работать не будет. Форма ввода не будет работать, если в таблице имеется более 32 столбцов или если внесенные нами данные еще не напоминают таблицу, например, указаны только заголовки столбцов. При этом, если создать таблицу через меню «Вставка Таблица» или применением форматирования таблицы, то форма ввода данных будет успешно работать, даже если в таблице будут только заголовки.

К примеру, на листе мы составили заголовки будущей таблицы без применения форматирования и внесли первое значение в любой столбец. В этом случае Эксель уже может интерпретировать эти данные, как таблицу, и после нажатия на значок вызова формы появится окошко формы ввода данных. После заполнения всех ячеек можно нажать на кнопку «Добавить» для переходя к заполнению следующего ряда, либо нажать «Закрыть» для завершения внесения данных.

Для удобства перехода к следующему полю формы можно использовать клавишу «Tab». В правом верхнем углу формы всегда отображается текущая заполняемая строка и общее количество строк таблицы. Чтобы перемещаться по строкам вперед и назад, можно использовать кнопки «Назад» и «Далее» или стрелочки вверх и вниз.

Выпадающий список в Excel это, пожалуй, один из самых удобных способов работы с данными. Использовать их вы можете как при заполнении форм, так и создавая дашборды и объемные таблицы. Выпадающие списки часто используют в приложениях на смартфонах, веб-сайтах. Они интуитивно понятны рядовому пользователю.

Кликните по кнопке ниже для загрузки файла с примерами выпадающих списков в Excel:

Видео-урок Как создать выпадающий список в Экселе на основе данных из перечня

Представим, что у нас есть перечень фруктов:

Для создания выпадающего списка нам потребуется сделать следующие шаги:

  • Выбрать ячейку, в которой мы хотим создать выпадающий список;
  • Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбираем пункт “Проверка данных“.
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
  • В поле “Источник” ввести диапазон названий фруктов =$A$2:$A$6 или просто поставить курсор мыши в поле ввода значений “Источник” и затем мышкой выбрать диапазон данных:

Если вы хотите создать выпадающие списки в нескольких ячейках за раз, то выберите все ячейки, в которых вы хотите их создать, а затем выполните указанные выше действия. Важно убедиться, что ссылки на ячейки являются абсолютными (например, $A$2), а не относительными (например, A2 или A$2 или $A2).

Как сделать выпадающий список в Excel используя ручной ввод данных

На примере выше, мы вводили список данных для выпадающего списка путем выделения диапазона ячеек. Помимо этого способа, вы можете вводить данные для создания выпадающего списка вручную (необязательно их хранить в каких-либо ячейках).

Например, представим что в выпадающем меню мы хотим отразить два слова “Да” и “Нет”. Для этого нам потребуется:

  • Выбрать ячейку, в которой мы хотим создать выпадающий список;
  • Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
  • В поле “Источник” ввести значение “Да; Нет”.
  • Нажимаем “ОК

как в excel сделать окно для ввода данных

После этого система создаст раскрывающийся список в выбранной ячейке. Все элементы, перечисленные в поле “Источник“, разделенные точкой с запятой будут отражены в разных строчках выпадающего меню.

Если вы хотите одновременно создать выпадающий список в нескольких ячейках – выделите нужные ячейки и следуйте инструкциям выше.

Как создать раскрывающийся список в Эксель с помощью функции СМЕЩ

Наряду со способами описанными выше, вы также можете использовать формулу СМЕЩ для создания выпадающих списков.

Например, у нас есть список с перечнем фруктов:

Для того чтобы сделать выпадающий список с помощью формулы СМЕЩ необходимо сделать следующее:

  • Выбрать ячейку, в которой мы хотим создать выпадающий список;
  • Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
  • В поле “Источник” ввести формулу: =СМЕЩ(A$2$;0;0;5)
  • Нажать “ОК

Система создаст выпадающий список с перечнем фруктов.

Как эта формула работает?

На примере выше мы использовали формулу =СМЕЩ(ссылка;смещ_по_строкам;смещ_по_столбцам;;).

Эта функция содержит в себе пять аргументов. В аргументе “ссылка” (в примере $A$2) указывается с какой ячейки начинать смещение. В аргументах “смещ_по_строкам” и “смещ_по_столбцам” (в примере указано значение “0”) – на какое количество строк/столбцов нужно смещаться для отображения данных. В аргументе “” указано значение “5”, которое обозначает высоту диапазона ячеек. Аргумент “” мы не указываем, так как в нашем примере диапазон состоит из одной колонки.

Используя эту формулу, система возвращает вам в качестве данных для выпадающего списка диапазон ячеек, начинающийся с ячейки $A$2, состоящий из 5 ячеек.

Как сделать выпадающий список в Excel с подстановкой данных (с использованием функции СМЕЩ)

Если вы используете для создания списка формулу СМЕЩ на примере выше, то вы создаете список данных, зафиксированный в определенном диапазоне ячеек. Если вы захотите добавить какое-либо значение в качестве элемента списка, вам придется корректировать формулу вручную. Ниже вы узнаете, как делать динамический выпадающий список, в который будут автоматически загружаться новые данные для отображения.

Для создания списка потребуется:

  • Выбрать ячейку, в которой мы хотим создать выпадающий список;
  • Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“;
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“;
  • В поле “Источник” ввести формулу: =СМЕЩ(A$2$;0;0;СЧЕТЕСЛИ($A$2:$A$100;””))
  • Нажать “ОК

В этой формуле, в аргументе “” мы указываем в качестве аргумента, обозначающего высоту списка с данными –  формулу СЧЕТЕСЛИ, которая рассчитывает в заданном диапазоне A2:A100 количество не пустых ячеек.

Примечание: для корректной работы формулы, важно, чтобы в списке данных для отображения в выпадающем меню не было пустых строк.

Как создать выпадающий список в Excel с автоматической подстановкой данных

Для того чтобы в созданный вами выпадающий список автоматически подгружались новые данные, нужно проделать следующие действия:

  • Создаем список данных для отображения в выпадающем списке. В нашем случае это список цветов. Выделяем перечень левой кнопкой мыши:
  • На панели инструментов нажимаем пункт “Форматировать как таблицу“:
  • Из раскрывающегося меню выбираем стиль оформления таблицы:
  •  Нажав клавишу “ОК” во всплывающем окне, подтверждаем выбранный диапазон ячеек:
  • Затем, выделим диапазон данных таблицы для выпадающего списка и присвоим ему имя в левом поле над столбцом “А”:

Таблица с данными готова, теперь можем создавать выпадающий список. Для этого необходимо:

  • Выбрать ячейку, в которой мы хотим создать список;
  • Перейти на вкладку “Данные” => раздел “Работа с данными” на панели инструментов => выбрать пункт “Проверка данных“:
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выбрать “Список“:
  • В поле источник указываем =”название вашей таблицы”. В нашем случае мы ее назвали “Список“:
  • Готово! Выпадающий список создан, в нем отображаются все данные из указанной таблицы:
  • Для того чтобы добавить новое значение в выпадающий список – просто добавьте в следующую после таблицы с данными ячейку информацию:
  • Таблица автоматически расширит свой диапазон данных. Выпадающий список соответственно пополнится новым значением из таблицы:

Как скопировать выпадающий список в Excel

В Excel есть возможность копировать созданные выпадающие списки. Например, в ячейке А1 у нас есть выпадающий список, который мы хотим скопировать в диапазон ячеек А2:А6.

Для того чтобы скопировать выпадающий список с текущим форматированием:

  • нажмите левой клавишей мыши на ячейку с выпадающим списком, которую вы хотите скопировать;
  • нажмите сочетание клавиш на клавиатуре CTRL+C;
  • выделите ячейки в диапазоне А2:А6, в которые вы хотите вставить выпадающий список;
  • нажмите сочетание клавиш на клавиатуре CTRL+V.

Так, вы скопируете выпадающий список, сохранив исходный формат списка (цвет, шрифт и.т.д). Если вы хотите скопировать/вставить выпадающий список без сохранения формата, то:

  • нажмите левой клавишей мыши на ячейку с выпадающим списком, который вы хотите скопировать;
  • нажмите сочетание клавиш на клавиатуре CTRL+C;
  • выберите ячейку, в которую вы хотите вставить выпадающий список;
  • нажмите правую кнопку мыши => вызовите выпадающее меню и нажмите “Специальная вставка“;
  • В появившемся окне в разделе “Вставить” выберите пункт “условия на значения“:
  • Нажмите “ОК

После этого, Эксель скопирует только данные выпадающего списка, не сохраняя форматирование исходной ячейки.

Как выделить все ячейки, содержащие выпадающий список в Экселе

Иногда, сложно понять, какое количество ячеек в файле Excel содержат выпадающие списки. Есть простой способ отобразить их. Для этого:

  • Нажмите на вкладку “Главная” на Панели инструментов;
  • Нажмите “Найти и выделить” и выберите пункт “Выделить группу ячеек“:
  • В диалоговом окне выберите пункт “Проверка данных“. В этом поле есть возможность выбрать пункты “Всех” и “Этих же“. “Всех” позволит выделить все выпадающие списки на листе. Пункт “этих же” покажет выпадающие списки схожие по содержанию данных в выпадающем меню. В нашем случае мы выбираем “всех“:
  • Нажмите “ОК

Нажав “ОК“, Excel выделит на листе все ячейки с выпадающим списком. Так вы сможете привести за раз все списки к общему формату, выделить границы и.т.д.

Как сделать зависимые выпадающие списки в Excel

Иногда нам требуется создать несколько выпадающих списков, причем, таким образом, чтобы, выбирая значения из первого списка, Excel определял какие данные отобразить во втором выпадающем списке.

Предположим, что у нас есть списки городов двух стран Россия и США:

Для создания зависимого выпадающего списка нам потребуется:

  • Создать два именованных диапазона для ячеек “A2:A5” с именем “Россия” и для ячеек “B2:B5” с названием “США”. Для этого нам нужно выделить весь диапазон данных для выпадающих списков:
  • Перейти на вкладку “Формулы” => кликнуть в разделе “Определенные имена” на пункт “Создать из выделенного“:
  • Во всплывающем окне “Создание имен из выделенного диапазона” поставьте галочку в пункт “в строке выше“. Сделав это, Excel создаст два именованных диапазона “Россия” и “США” со списками городов:
  • Нажмите “ОК
  • В ячейке “D2” создайте выпадающий список для выбора стран “Россия” или “США”. Так, мы создадим первый выпадающий список, в котором пользователь сможет выбрать одну из двух стран.

Теперь, для создания зависимого выпадающего списка:

  • Выделите ячейку E2 (или любую другую ячейку, в которой вы хотите сделать зависимый выпадающий список);
  • Кликните по вкладке “Данные” => “Проверка данных”;
  • Во всплывающем окне “Проверка вводимых значений” на вкладке “Параметры” в типе данных выберите “Список“:
  • В разделе “Источник” укажите ссылку: =INDIRECT($D$2) или =ДВССЫЛ($D$2);
  • Нажмите “ОК

Теперь, если вы выберите в первом выпадающем списке страну “Россия”, то во втором выпадающем списке появятся только те города, которые относятся к этой стране. Также и в случае, когда выбираете “США” из первого выпадающего списка.

Ввод данных вручную в ячейки листа

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше

У вас есть несколько вариантов ввода данных вручную в Excel. Данные можно вводить в одну ячейку, в несколько ячеек одновременно или лист один раз. Введите числа, текст, даты или время. Форматирование данных можно различными способами. Кроме того, существует несколько параметров, которые можно настроить, чтобы упростить ввод данных.

В этом разделе не описывается использование формы данных для ввода данных на листе. Дополнительные сведения о работе с формами данных см. в статью Добавление, изменение,поиск и удаление строк с помощью формы данных.

Важно: Если не получается ввести или изменить данные на листе, он может быть защищен во избежание случайного изменения данных. На защищенном листе можно выбирать ячейки для просмотра данных, но невозможно вводить данные в заблокированные ячейки. В большинстве случаев защиту не стоит снимать до тех пор, пока не будет получено разрешение от пользователя, который создал лист. Чтобы отменить защиту листа, нажмите кнопку Снять защиту листа в группе Изменения на вкладке Рецензирование. Если при включении защиты был задан пароль, для отмены защиты листа сначала необходимо ввести этот пароль.

  1. Выберите ячейку на листе.

  2. Введите числа или текст, которые вы хотите ввести, а затем нажмите ввод или TAB.

    Чтобы ввести данные в новую строку в ячейке, введите разрыв строки, нажав ALT+ВВОД.

  1. На вкладке Файл выберите пункт Параметры.

    Только Excel 2007: нажмите кнопку Microsoft Office Изображение кнопки Officeи выберите Excel параметры.

  2. В меню Расширенные параметры нужно выбрать пункт Параметры правки, и затем установить флажок Автоматическая вставка десятичной запятой.

  3. В поле Число знаков после запятой введите положительное число для количества цифр справа от запятой или отрицательное число для количества цифр слева от запятой.

    Например, если ввести 3 в поле Число знаков после запятой, а затем — 2834 в ячейке, то значение будет равно 2,834. Если ввести –3 в поле Число знаков после запятой, а затем — 283, то значение будет равно 283000.

  4. Выберите ячейку на листе и введите нужное число.

    Изменение параметра Фиксированный десятичный формат не влияет на уже введенные данные.

    Чтобы не использовать для числа параметр Фиксированный десятичный формат, при вводе этого числа введите десятичную запятую.

  1. Выберите ячейку на листе.

  2. Введите дату или время в следующем виде.

    • При вводе даты используйте в качестве разделителя точку или дефис, например 09.05.2002 или 5-сен-2002.

    • Для ввода времени суток в 12-часовом формате введите букву a или p, отделенную пробелом от значения времени, например 9:00 p. В противном случае значение будет введено как время в первой половине суток.

      Чтобы ввести текущую дату и время, нажмите клавиши CTRL+SHIFT+; (точка с запятой).

  • Чтобы ввести дату или время, которые останутся текущими при повторном открытии листа, можно воспользоваться функциями СЕГОДНЯ и ТДАТА.

  • При вводе даты или времени в ячейку они отображаются либо в формате по умолчанию компьютера, либо в формате, примененном к ячейке перед вводом даты или времени. Формат даты или времени по умолчанию зависит от параметров даты и времени в диалоговом окне Язык и региональные стандарты (панель управления, Часы, язык и регион). Если изменить эти параметры на компьютере, то значения даты или времени, которые не были отформатированы с помощью команды Формат ячеек, будут отображаться в соответствии с этими параметрами.

  • Чтобы применить формат даты или времени по умолчанию, щелкните ячейку с датой или временем и нажмите клавиши CTRL+SHIFT+# или CTRL+SHIFT+@.

  1. Выделите ячейки, в которые необходимо ввести одинаковые данные. Они не обязательно должны быть смежными.

  2. Введите данные в активной ячейке и нажмите клавиши CTRL+ВВОД.

    Можно также ввести одинаковые данные в несколько ячеек с помощью маркер заполнения Маркер заполнения, чтобы автоматически заполнить данными ячейки листа.

    Дополнительные сведения см. в статье Автоматическое заполнение ячеек листа данными.

Сделав несколько листов активными одновременно, можно вводить новые или изменять существующие данные на одном из листов, после чего изменения будут применены к тем же ячейкам всех выбранных листов.

  1. Щелкните ярлычок первого листа, содержимое которого требуется изменить. Затем, удерживая нажатой клавишу CTRL, щелкните ярлычки других листов, с которыми следует синхронизировать данные.

    Кнопки прокрутки листов

    Примечание: Если ярлычок нужного листа не виден, найдите его с помощью кнопок прокрутки листов, а затем щелкните. Если ярлычки нужных листов все равно не видны, необходимо развернуть окно документа.

  2. На активном листе выберите ячейку или диапазон, в котором необходимо изменить или ввести данные.

  3. В активной ячейке введите новые данные или измените существующие, а затем нажмите клавишу ВВОД или TAB, чтобы переместить выделение в следующую ячейку.

    Изменения будут применены ко всем выбранным листам.

  4. Повторите предыдущее действие до завершения ввода или редактирования данных.

  • Чтобы отменить выделение нескольких листов, щелкните любой невыделенный лист. Если на экране видны только выделенные листы, щелкните правой кнопкой мыши ярлычок листа и выберите команду Разгруппировать листы.

  • При вводе или редактировании данных изменения применяются ко всем выбранным листам, из-за чего могут случайно измениться данные, которые не требовалось менять. Чтобы избежать этого, можно просмотреть все листы одновременно, чтобы определить потенциальные конфликты данных.

    1. На вкладке Вид в группе Окно щелкните Новое окно.

    2. Перейдите в новое окно, а затем щелкните лист, который необходимо просмотреть.

    3. Повторите шаги 1 и 2 для каждого листа, который требуется просмотреть.

    4. На вкладке Вид в группе Окно щелкните пункт Упорядочить все, а затем выберите нужный вариант.

    5. Для просмотра листов только в активной книге установите в диалоговом окне Расположение окон флажок Только окна текущей книги.

Excel предоставляет несколько настроек для упрощения ручного ввода данных. Некоторые изменения влияют на все книги, некоторые — на весь лист, а другие влияют только на заданные ячейки.

Изменение направления клавиши ВВОД

Если использовать клавишу TAB для ввода данных в нескольких ячейках строки, а затем нажать клавишу ВВОД в конце этой строки, по умолчанию курсор переместится к началу следующей строки.

Нажатие клавиши ВВОД перемещает курсор на одну ячейку вниз, а нажатие клавиши TAB — на одну ячейку вправо. Направление перемещения для клавиши TAB изменить нельзя, но для клавиши ВВОД — можно. Изменение этого параметра влияет на весь лист, все другие открытые листы и книги, а также новые книги.

  1. На вкладке Файл нажмите кнопку Параметры.

    Только Excel 2007: нажмите кнопку Microsoft Office Изображение кнопки Officeи выберите Excel параметры.

  2. В группе Дополнительно в разделе Параметры правки установите флажок Переход к другой ячейке после нажатия клавиши ВВОД и выберите нужное направление в списке Направление.

Изменение ширины столбца

Иногда в ячейке может отображаться строка вида #####. Это может происходить, если ячейка содержит число или дату, а ширина столбца не позволяет отобразить все необходимые символы. Допустим, например, что столбец с форматом даты «дд.мм.гггг» содержит дату 31.12.2015. Однако ширины столбца хватает только для показа шести символов. В ячейке будет отображена строка #####. Чтобы увидеть все содержимое ячейки с текущим форматом, необходимо увеличить ширину столбца.

  1. Щелкните ячейку, для которой требуется изменить ширину столбца.

  2. На вкладке Главная в группе Ячейки нажмите кнопку Формат.

    Группа "Ячейки" на вкладке "Главная"

  3. Выделите пункт Размер ячейки и выполните одно из следующих действий.

    • Чтобы подогнать размер ячейки под текст, выберите команду Автоподбор ширины столбца.

    • Чтобы увеличить ширину столбца, выберите команду Ширина и в поле Ширина столбца введите нужное значение.

Примечание: Также ширину столбца можно увеличить, изменив формат столбца или отдельной ячейки. Например, можно изменить формат даты, чтобы отображался только день и месяц (формат «дд.мм»), например 31.12, или представить число в экспоненциальном формате, например 4E+08.

Перенос текста в ячейке

Путем переноса текста в ячейке можно отобразить несколько строк текста. Перенос текста в ячейке не влияет на другие ячейки.

  1. Щелкните ячейку, в которой требуется выполнить перенос текста.

  2. На вкладке Главная в группе Выравнивание выберите пункт Переносить текст.

    Группа "Выравнивание" на вкладке "Главная"

Примечание: Если текст представляет собой одно длинное слово, знаки не будут перенесены; чтобы был виден весь текст, можно расширить столбец или уменьшить размер шрифта. Если после включения переноса текста виден не весь текст, возможно, потребуется изменить высоту строки. На вкладке Главная в группе Ячейки нажмите кнопку Формат и выберите в разделе Размер ячейки команду Автоподбор высоты строки.

Дополнительные сведения о переносе текста см. в разделе Перенос текста в ячейке.

Изменение формата числа

В Excel формат ячейки представлен отдельно от данных в ячейке. Такое различие в отображении может иметь значительные последствия, если данные числовые. Например, при округлении вводимого числа округляется только отображаемое число. Для вычислений же используется фактическое значение, хранимое в ячейке, а не отформатированное число, показанное на экране. Следовательно, вычисления могут казаться неточными из-за округления в одной или нескольких ячейках.

После ввода чисел в ячейку можно изменить формат их отображения.

  1. Выберите ячейку, в которой содержатся нужные числа.

  2. На вкладке Главная в группе Число щелкните стрелку рядом с полем Числовой формат и выберите нужный формат.

    Список "Числовой формат" на вкладке "Главная"

    Чтобы выбрать формат из списка доступных, нажмите кнопку Дополнительные числовые форматы и выберите нужный формат из списка Числовые форматы.

Форматирование чисел в виде текста

Для чисел, с которыми не требуется выполнять вычисления, например для номеров телефонов, можно выбрать текстовый формат, применив его к ячейкам перед вводом текста.

  1. Выберите пустую ячейку.

  2. На вкладке Главная в группе Число щелкните стрелку рядом с полем Числовой формат и выберите пункт Текстовый.

    Список "Числовой формат" на вкладке "Главная"

  3. Введите нужные числа в отформатированной ячейке.

    Числа, которые были введены перед применением к ячейкам текстового формата, необходимо ввести заново в отформатированные ячейки. Чтобы ускорить повторный ввод чисел в текстовом формате, нажмите клавишу F2, а затем — клавишу ВВОД.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Нужна дополнительная помощь?

В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]

Рис. 1. Работа процедуры GetName

Скачать заметку в формате Word или pdf, примеры в архиве

Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.

Использование окон ввода данных

Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.

Функция InputBox в VBA

Функция имеет следующий синтаксис:

InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])

  • Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
  • Заголовок. Определяет заголовок окна ввода (необязательный параметр).
  • По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
  • xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
  • Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).

Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.

Процедура GetName запрашивает у пользователя полное имя (имя и фамилию). Затем программа выделяет имя и отображает приветствие в окне сообщения (см. рис. 1; код функции можно найти в файле VBA inputbox.xlsm).

Sub GetName()

    Dim UserName As String

    Dim FirstSpace As Integer

    Do Until UserName <> «»

        UserName = InputBox(«Укажите имя и фамилию: «, _

            «Назовите себя»)

    Loop

    FirstSpace = InStr(UserName, » «)

    If FirstSpace <> 0 Then

        UserName = Left(UserName, FirstSpace 1)

    End If

    MsgBox «Привет « & UserName

End Sub

Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.

Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.

В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.

Sub GetWord()

    Dim TheWord As String

    Dim p As String

    Dim t As String

    p = Range(«A1»)

    t = «Какое слово пропущено?»

    TheWord = InputBox(prompt:=p, Title:=t)

    If UCase(TheWord) = «ВОДОКАЧКУ» Then

        MsgBox «Верно.»

    Else

        MsgBox «Не верно.»

    End If

End Sub

Рис. 2. Использование функции VBA inputBox, отображающей запрос

Метод Excel InputBox

Метод Excel InputBox по сравнению с функцией VBA InputBox предоставляет три преимущества:

  • возможность задать тип возвращаемого значения;
  • возможность указать диапазон листа путем выделения с помощью мыши;
  • автоматическая проверка правильности введенных данных.

Метод InputBox имеет следующий синтаксис.

InputBox(запрос, [, заголовок], [, по_умолчанию], [, слева], [, сверху], [, справка, раздел], [, тип])

  • Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
  • Заголовок. Определяет заголовок окна ввода (необязательный параметр).
  • По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
  • Слева, сверху. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
  • Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
  • Тип. Указывает код типа данных, который будет возвращаться методом (необязательный параметр; значения см. рис. 3).

Рис. 3. Коды типов данных, возвращаемые методом Excel InputBox

Используя сумму приведенных выше значений, можно возвратить несколько типов данных. Например, для отображения окна ввода, которое принимает текстовый или числовой тип данных, установите код равным 3 (1 + 2 или число + текст). Если в качестве кода типа данных применить значение 8, то пользователь сможет ввести в поле адрес ячейки или диапазона ячеек. Пользователь также можент выбрать диапазон на текущем рабочем листе.

В процедуре EraseRange используется метод InputBox. Пользователь может указать удаляемый диапазон (рис. 4). Адрес диапазона вводится в окно вручную, или выделяется мышью на листе. Метод InputBox с кодом 8 возвращает объект Range (обратите внимание на ключевое слово Set). После этого выбранный диапазон очищается (с помощью метода Clear). По умолчанию в поле окна ввода отображается адрес текущей выделенной ячейки. Если в окне ввода щелкнуть на кнопке Отмена, то оператор On Error завершит процедуру.

Sub EraseRange()

    Dim UserRange As Range

    On Error GoTo Canceled

    Set UserRange = Application.InputBox _

        (Prompt:=«Удаляемый диапазон:», _

        Title:=«Удаление диапазона», _

        Default:=Selection.Address, _

        Type:=8)

    UserRange.Clear

    UserRange.Select

Canceled:

End Sub

Рис. 4. Пример использования метода InputBox для выбора диапазона

Если в процедуре EraseRange ввести не диапазон адресов, то Excel отобразит сообщение (рис. 5) и позволит пользователю повторить ввод данных.

Рис. 5. Метод InputBox автоматически проверяет вводимые данные

Функция VBA MsgBox

Функция VBA MsgBox служит для отображения сообщения. Также она передает результат щелчка на кнопке ОК или Отмена). Синтаксис функции:

MsgBox(запрос[, кнопки][, заголовок][, справка, раздел])

  • Запрос. Определяет текст, который будет отображаться в окне сообщения (обязательный параметр).
  • Кнопки. Содержит числовое выражение (или константу), которое определяет кнопки, отображаемые в окне сообщения (необязательный параметр; рис. 6). Также можно задать кнопку по умолчанию.
  • Заголовок. Содержит заголовок окна сообщения (необязательный параметр).
  • Справка, раздел. Указывают файл и раздел справочной системы (необязательные параметры).

Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox

Первая группа значений (0–5) описывает номер и тип кнопок в диалоговом окне. Вторая группа (16, 32, 48, 64) описывает стиль значка. Третья группа (0, 256, 512) определяет, какая кнопка назначена по умолчанию. Четвертая группа (0, 4096) определяет модальность окна сообщения. Пятая указывает, показывать ли окно сообщений поверх других окон, устанавливает выравнивание и направление текста. В процессе сложения чисел для получения окончательного значения аргумента Buttons следует использовать только одно число из каждой группы.

Можно использовать функцию MsgBox в качестве процедуры (для отображения сообщения), а также присвоить возвращаемое этой функцией значение переменной. Функция MsgBox возвращает результат, представляющий кнопку, на которой щелкнул пользователь. В следующем примере отображается сообщение и не возвращается результат (код функций, приведенных в этом разделе см. также в файле VBA msgbox.xlsm).

Sub MsgBoxDemo()

    MsgBox «При выполнении макроса ошибок не произошло.»

End Sub

Чтобы получить результат из окна сообщения, присвойте возвращаемое функцией MsgBox значение переменной. В следующем коде используется ряд встроенных констант (рис. 7), которые упрощают управление возвращаемыми функцией MsgBox значениями.

Sub GetAnswer()

    Dim Ans As Integer

    Ans = MsgBox(«Продолжать?», vbYesNo)

    Select Case Ans

        Case vbYes

            ‘ … [код при Ans равно Yes]

        Case vbNo

            ‘ ... [код при Ans равно No]

    End Select

End Sub

Рис. 7. Константы, возвращаемые MsgBox

Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.

Sub GetAnswer2()

    If MsgBox(«Продолжать?», vbYesNo) = vbYes Then

‘ … [код при Ans равно Yes]

    Else

... [код при Ans равно No]

    End If

End Sub

В следующем примере функции используется комбинация констант для отображения окна сообщения с кнопками Да, Нет и знаком вопроса (рис. 8). Вторая кнопка (Нет) используется по умолчанию. Для простоты константы добавлены в переменную Config.

Private Function ContinueProcedure() As Boolean

   Dim Config As Integer

   Dim Ans As Integer

   Config = vbYesNo + vbQuestion + vbDefaultButton2

   Ans = MsgBox(«Произошла ошибка. Продолжить?», Config)

   If Ans = vbYes Then ContinueProcedure = True _

      Else ContinueProcedure = False

End Function

Рис. 8. Параметр Кнопки функции MsgBox определяет кнопки, которые отображаются в окне сообщения

В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор

If Not ContinueProcedure() Then Exit Sub

вызывает функцию ContinueProcedure (которая отображает окно сообщения). Если функция возвращает значение ЛОЖЬ (т.е. пользователь щелкнул на кнопке Нет), то процедура будет завершена. В противном случае выполняется следующий оператор.

Если в сообщении необходимо указать разрыв строки (рис. 9), воспользуйтесь константой vbCrLf (или vbNewLine):

Sub MultiLine()

    Dim Msg As String

    Msg = «Это первая строка.» & vbCrLf & vbNewLine

    Msg = Msg & «Вторая строка.» & vbCrLf

    Msg = Msg & «Третья строка.»

    MsgBox Msg

End Sub

Рис. 9. Разбиение сообщения на несколько строк

Для включения в сообщение символа табуляции применяется константа vbTab. В процедуре ShowRange окно сообщения используется для отображения диапазона значений размером 10 строк на 3 столбца — ячейки А1:С10 (рис. 10). В этом случае столбцы разделены с помощью константы vbTab. Новые строки вставляются с помощью константы vbCrLf. Функция MsgBox принимает в качестве параметра строку, длина которой не превышает 1023 символов. Такая длина задает ограничение на количество ячеек, которое можно отобразить в сообщении.

Sub ShowRange()

    Dim Msg As String

    Dim r As Integer, c As Integer

    Msg = «»

    For r = 1 To 10

        For c = 1 To 3

            Msg = Msg & Cells(r, c).Text

            If c <> 3 Then Msg = Msg & vbTab

            Next c

            Msg = Msg & vbCrLf

        Next r

    MsgBox Msg

End Sub

Рис. 10. Текст в этом окне сообщения содержит символы табуляции и разрыва строк

Метод Excel GetOpenFilename

Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):

Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)

  • Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
  • Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
  • Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
  • Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.

Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: "Все файлы (*.*),*.*". Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.

В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.

Filt = «Текстовые файлы (*.txt),*.txt,» & _

   «Файлы Lotus (*.prn),*.prn,» & _

   «Файлы, разделенные запятой (*.csv),*.csv,» & _

   «Файлы ASCII (*.asc),*.asc,» & _

   «Все файлы (*.*),*.*»

В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

Sub GetImportFileName()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

‘   Настройка списка фильтров

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «Все файлы (*.*),*.*»

   Отображает *.* по умолчанию

    FilterIndex = 3

‘   Настройка заголовка диалогового окна

    Title = «Выберите файл для импорта»

   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title)

‘   При отмене выйти из окна

    If FileName = False Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

   Отображение полного имени и пути

    MsgBox «Вы выбрали « & FileName

End Sub

На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).

Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл

В следующем примере пользователь может, удерживая нажатыми клавиши <Shift> и <Ctrl>, выбрать в окне несколько файлов. Обратите внимание, что событие использования кнопки Отмена определяется по наличию переменной массива FileName. Если пользователь не щелкнул на кнопке Отмена, то результирующий массив будет состоять как минимум из одного элемента. В этом примере список выбранных файлов отображается в окне сообщения.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

Sub GetImportFileName2()

    Dim Filt As String

    Dim FilterIndex As Integer

    Dim FileName As Variant

    Dim Title As String

    Dim i As Integer

    Dim Msg As String

‘   Установка списка фильтров файлов

    Filt = «Text Files (*.txt),*.txt,» & _

            «Lotus Files (*.prn),*.prn,» & _

            «Comma Separated Files (*.csv),*.csv,» & _

            «ASCII Files (*.asc),*.asc,» & _

            «All Files (*.*),*.*»

   Отображает *.* по умолчанию

    FilterIndex = 5

‘   Настройка заголовка диалогового окна

    Title = «Выберите файл для импорта»

   Получение имени файла

    FileName = Application.GetOpenFilename _

        (FileFilter:=Filt, _

         FilterIndex:=FilterIndex, _

         Title:=Title, _

         MultiSelect:=True)

‘   Выход в случае отмены работы с диалоговым окном

    If Not IsArray(FileName) Then

        MsgBox «Файл не выбран.»

        Exit Sub

    End If

   Отображение полного пути и имени файлов

    For i = LBound(FileName) To UBound(FileName)

        Msg = Msg & FileName(i) & vbCrLf

    Next i

    MsgBox «Было выбрано:» & vbCrLf & Msg

End Sub

Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.

Метод Excel GetSaveAsFilename

Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):

Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)

  • Начальное_имя. Указывает предполагаемое имя файла.
  • Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
  • Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
  • Заголовок. Определяет текст заголовка диалогового окна.

Получение имени папки

Для того чтобы получить имя файла, проще всего воспользоваться описанным выше методом GetOpenFileName. Но если нужно получить лишь имя папки (без названия файла), лучше воспользоваться методом объекта Excel FileDialog. Следующая процедура отображает диалоговое окно, в котором можно выбрать папку (см. также файл get directory.xlsm). С помощью функции MsgBox отображается имя выбранной папки (или сообщение Отменено).

Sub GetAFolder()

    With Application.FileDialog(msoFileDialogFolderPicker)

        .InitialFileName = Application.DefaultFilePath & «»

        .Title = «Выберите местоположение резервной копии.«

        .Show

        If .SelectedItems.Count = 0 Then

            MsgBox «Отменено»

        Else

            MsgBox .SelectedItems(1)

        End If

    End With

End Sub

Объект FileDialog позволяет определить начальную папку путем указания значения свойства InitialFileName. В примере в качестве начальной папки применяется путь к файлам Excel, заданный по умолчанию.

Отображение диалоговых окон Excel

Создаваемый вами код VBA может вызывать на выполнение многие команды Excel, находящиеся на ленте. И если в результате выполнения команды открывается диалоговое окно, ваш код может делать выбор в диалоговом окне (даже если само диалоговое окно не отображается). Например, следующая инструкция VBA эквивалентна выбору команды Главная –> Редактирование –> Найти и выделить –> Перейти и указанию диапазона ячеек А1:СЗ с последующим щелчком на кнопке ОК. Но само диалоговое окно Переход при этом не отображается (именно это и нужно).

Application.Goto Reference:=Range("А1:СЗ")

Иногда же приходится отображать встроенные окна Excel, чтобы пользователь мог сделать свой выбор. Для этого используется коллекция Dialogs объекта Application. Учтите, что в настоящее время компания Microsoft прекратила поддержу этого свойства. В предыдущих версиях Excel пользовательские меню и панели инструментов создавались с помощью объекта CommandBar. В версиях Excel 2007 и Excel 2010 этот объект по-прежнему доступен, хотя и работает не так, как раньше. Начиная с версии Excel 2007 возможности объекта CommandBar были существенно расширены. В частности, объект CommandBar можно использовать для вызова команд ленты с помощью VBA. Многие из команд, доступ к которым открывается с помощью ленты, отображают диалоговое окно. Например, следующая инструкция отображает диалоговое окно Вывод на экран скрытого листа (рис. 12; см. также файл ribbon control names.xlsm):

Application.CommandBars.ExecuteMso("SheetUnhide")

Рис. 12. Диалоговое окно, отображаемое в результате выполнения указанного выше оператора

Метод ExecuteMso принимает лишь один аргумент, idMso, который представляет элемент управления ленты. К сожалению, сведения о многих параметрах в справочной системе отсутствуют.

В файле ribbon control names.xlsm описаны все названия параметров команд ленты Excel. Поэкспериментируйте с параметрами, перечисленными в этой рабочей книге. Многие из них вызывают команды немедленно (без промежуточных диалоговых окон). Но большинство из них генерирует ошибку при использовании в неправильном контексте. Например, Excel отображает сообщение об ошибке, если команда Functionwizard вызывается в случае выбора диаграммы.

В результате выполнения следующего оператора отображается вкладка Шрифт диалогового окна Формат ячеек:

Application.CommandBars.ExecuteMso("FormatCellsFontDialog")

На самом деле пользоваться объектами CommandBar не стоит, поскольку вряд ли они будут поддерживаться в будущих версиях Excel.

Отображение формы ввода данных

Многие пользователи применяют Excel для управления списками, информация в которых ранжирована по строкам. В Excel поддерживается простой способ работы с подобными типами данных с помощью встроенных форм ввода данных, которые могут создаваться автоматически. Подобная форма предназначена для работы как с обычным диапазоном, так и с диапазоном, оформленным в виде таблицы (с помощью команды Вставка –> Таблицы –> Таблица). Пример формы ввода данных показан на рис. 13 (см. также файл data form example.xlsm).

Рис. 13. Некоторые пользователи предпочитают применять встроенные формы ввода данных Excel для ввода сведений; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке

В силу каких-то неизвестных причин на ленте Excel отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.

  1. Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
  2. На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
  3. В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
  4. В появившемся списке выберите параметр Форма.
  5. Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
  6. Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.

После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.

Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу <Tab>. Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.

По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.

Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.

Sub DisplayDataForm()

    Range(«A1»).Select

    ActiveSheet.ShowDataForm

End Sub

[1] По материалам книги Джон Уокенбах. Excel 2010. Профессиональное программирование на VBA. – М: Диалектика, 2013. – С. 387–403.

Как создать простую форму ввода без VBA в Microsoft Excel

Обычно заполнение данных в таблицах Microsoft Excel происходит вручную, однако это не всегда удобно, особенно если речь идет о проектах с большим количеством столбцов. Часто приходится при помощи мыши пролистывать лист в сторону и выполнять лишние движения для переключения между ячейками. Решается эта проблема путем создания простой формы ввода, что реализуемо без навыков программирования на VBA.

Подготовительные действия

Сначала понадобится подготовить сам лист, а именно – сформировать таблицу, чтобы в будущем форма ее корректно распознала. Вместе с этим нужно активировать кнопку для вызова формы, поскольку по умолчанию в новых версиях Microsoft Excel она не добавлена на панель быстрого доступа. 

  1. Зажмите левую кнопку мыши и выделите все содержимое таблицы, после чего перейдите на вкладку «Вставка».Выделение таблицы для создания простой формы ввода в Microsoft Excel

  2. На ней разверните список «Таблицы» и кликните левой кнопкой мыши по варианту «Таблица».Кнопка создания таблицы для создания простой формы ввода в Microsoft Excel

  3. Расположение таблицы уже будет задано по умолчанию, поэтому останется только подтвердить данное действие.Подтверждение создания таблицы для создания простой формы ввода в Microsoft Excel

  4. Изменять внешний вид таблицы вы можете по своему усмотрению, но сейчас я остановлюсь на классическом ее виде, поскольку функционально разницы никакой не будет.Проверка оформления таблицы для создания простой формы ввода в Microsoft Excel

  5. Далее понадобится добавить кнопку вызова формы, для чего перейдите на вкладку «Файл».Переход на вкладку Файл для создания простой формы ввода в Microsoft Excel

  6. Нажмите по пункту «Другие» и из появившегося меню выберите пункт «Параметры».Открытие раздела с параметрами для создания простой формы ввода в Microsoft Excel

  7. В новом окне с настройками на панели слева выберите раздел «Панель быстрого доступа» и установите фильтр для команд «Команды не на ленте».Выбор параметра для создания простой формы ввода в Microsoft Excel

  8. Среди всех команд отыщите «Форма», выделите ее левой кнопкой мыши и нажмите «Добавить».Добавление кнопки на панель быстрого доступа для создания простой формы ввода в Microsoft Excel

  9. На этом процесс настройки закончен, поэтому убедитесь в том, что кнопка теперь отображается в перечне справа, после чего нажмите «ОК».Подтверждение добавления кнопки для создания простой формы ввода в Microsoft Excel

Все, теперь у вас есть готовая таблица для заполнения, а также кнопка на панели быстрого доступа, которая и отвечает за вызов окна с формой.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Заполнение простой формы ввода

Я покажу пример, как осуществляется заполнение простой формы при помощи функционального окна, кнопку вызова которого мы и добавили на панель быстрого доступа. Процесс заполнения данных выглядит просто и отлично подойдет для тех ситуаций, когда одновременно нужно создать сразу несколько строк с большим количеством столбцов.

  1. Выделите абсолютно любую ячейку, входящую в таблицу, после чего нажмите по кнопке «Форма» на панели быстрого доступа.Вызов кнопки после выделения таблицы для создания простой формы ввода в Microsoft Excel

  2. Начните с нажатия по кнопке «Добавить», чтобы создать новую строку для заполнения.Создание новой строки для создания простой формы ввода в Microsoft Excel

  3. Введите по очереди значения для каждых ячеек из столбцов с названиями, затем нажмите Enter для подтверждения ввода.Заполнение данных для создания простой формы ввода в Microsoft Excel

  4. Сразу же можете приступить к добавлению следующей строчки и делать так до тех пор, пока не завершите ввод всех значений для данной таблицы.Переключение на следующую строчку для создания простой формы ввода в Microsoft Excel

Такая нехитрая последовательность действий позволяет быстро заполнять таблицу данными без необходимости постоянно переключаться между строками и ячейками вручную. Вместе с этим отсутствует надобность самостоятельного создания формы через VBA, что для большинства пользователей практически нерешаемая задача.

Наши постоянные авторы и читатели делятся лайфхаками, основанными на личном опыте. Полная свобода самовыражения.

Рекомендуем

Поворот текста в Google Таблицах

Как посмотреть упоминания в Discord

Открытие Microsoft Excel в разных окнах

Как удалить сервер в Discord

Как исправить работу стрелок клавиатуры в Microsoft Excel

Понравилась статья? Поделить с друзьями:
  • Окно приложения microsoft excel это
  • Окно для ввода текста word
  • Окно при сохранении файла excel
  • Окно для ввода данных в word
  • Окно предпросмотра в excel