Для работы с данными в Excel многие пользователи предпочитают использовать таблицы, где информация организована по строкам. Для удобства ввода таких данных существуют встроенные формы ввода, которые могут быть созданы автоматически. Эти формы могут работать как с обычными диапазонами, так и с таблицами, созданными через команду "Вставка > Таблица". Пример такой формы приведен на скриншоте.
Для доступа к формам ввода данных сначала необходимо добавить соответствующую команду на панель быстрого доступа. Это можно сделать следующим образом:
📌 Скачать файл пример, можно в конце статьи.
- Щелкните правой кнопкой мыши на панели быстрого доступа и выберите "Настройка панели быстрого доступа".
- В выпадающем списке "Выбрать команды из" выберите "Команды не на ленте".
- Найдите "Форма" в списке команд и нажмите "Добавить".
- Завершите добавление, нажав "ОК".
После этого на панели быстрого доступа появится новый значок для доступа к форме ввода данных.
Чтобы использовать форму ввода данных, необходимо организовать данные в виде таблицы, с указанием заголовков столбцов в первой строке. После этого, выделив любую ячейку в таблице, можно нажать на кнопку "Форма" на панели быстрого доступа, и Excel отобразит диалоговое окно для ввода данных. Перемещение между полями осуществляется с помощью клавиши <Tab>. Важно отметить, что если ячейка содержит формулу, то ее результат будет отображен в виде текста, и изменить формулу через форму ввода невозможно.
После ввода данных следует нажать кнопку "Создать". Тогда Excel добавит данные в строку рабочего листа и очистит форму для ввода следующей строки.
Для отображения формы ввода данных с помощью VBA можно использовать метод ShowDataForm. Единственное требование заключается в том, что таблица данных должна начинаться в ячейке А1. Активная ячейка должна находиться в диапазоне либо диапазон данных должен иметь имя (Database).
Для этого достаточно следующего кода:
Этот макрос будет работать даже без добавления команды "Форма" на ленту или панель быстрого доступа.
На макрос я назначил кнопку: