Ввод данных в excel через форму vba
Отображает диалоговое окно для данных, вводимых пользователями. Возвращает данные, введенные в диалоговом окне.
Синтаксис
expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
выражение: переменная, представляющая объект Application.
Параметры
Возвращаемое значение
Примечания
В таблице ниже перечислены значения, которые можно передать в аргументе Type. Это может быть одиночное значение или сумма значений. К примеру, для поля ввода, которое допускает ввод текста и чисел, задайте для аргумента Type значение 1 + 2.
Используйте InputBox для отображения простого диалогового окна, что позволит вам вводить данные, которое можно будет использоваться в макросе. Диалоговое окно имеет кнопку ОК и кнопку Отмена. При выборе кнопки ОК InputBox возвращает значение, введенное в диалоговом окне. При выборе кнопки Отмена InputBox возвращает значение Ложь.
Если значение Type равно 0, InputBox возвращает формулу в виде текста, например, =2*PI()/360 . Если в формуле есть все ссылки, они возвращаются в качестве ссылки в стиле A1. (Используйте ** ConvertFormula ** для преобразования стиля ссылок.)
Если значение Type равно 8, InputBox возвращает объект Range. Необходимо использовать оператор Set, чтобы назначить результат для объекта Range, как показано в приведенном ниже примере.
Если вы не используете оператор Set, для переменной устанавливается значение в диапазоне, а не сам объект Range.
Если вы используете метод InputBox для запроса формулы у пользователя, необходимо использовать свойство ** FormulaLocal **, чтобы назначить формулу для объекта Range. Ввод формулы будет выполняться на языке пользователя.
Метод InputBox отличается от функции InputBox тем, что он позволяет выполнять выборочную проверку вводимых пользователем значений и его можно использовать с объектами, значениями ошибок и формулами Excel. Обратите внимание, что Application.InputBox вызывает метод InputBox; InputBox без квалификатора объекта вызывает функцию InputBox.
Пример
В этом примере у пользователя запрашивается число.
В этом примере пользователю предлагается выбрать ячейку на Листе1. В примере используется аргумент Type, чтобы гарантировать. что возвращаемое значение будет допустимой ссылкой на ячейку (объект Range).
В этом примере используется метод InputBox для пользователя, чтобы выделить диапазон для передачи определяемой пользователем функции MyFunction, которая умножает три значения в диапазоне и возвращает результат.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Создайте или откройте файл Excel с расширением .xlsm (Книга Excel с поддержкой макросов) или с расширением .xls в старых версиях приложения.
Перейдите в редактор VBA, нажав сочетание клавиш «Левая_клавиша_Alt+F11».
В открывшемся окне редактора VBA выберите вкладку «Insert» главного меню и нажмите кнопку «UserForm». То же подменю откроется при нажатии на вторую кнопку (после значка Excel) на панели инструментов.
На экране редактора VBA появится новая пользовательская форма с именем «UserForm1»:
Добавление элементов управления
Обычно вместе с пользовательской формой открывается панель инструментов «Toolbox», как на изображении выше, с набором элементов управления формы. Если панель инструментов «Toolbox» не отобразилась, ее можно вызвать, нажав кнопку «Toolbox» во вкладке «View»:
При наведении курсора на элементы управления появляются подсказки.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «TextBox», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «TextBox» (текстовое поле) будет добавлен на форму.
Найдите на панели инструментов «Toolbox» элемент управления с подсказкой «CommandButton», кликните по нему и, затем, кликните в любом месте рабочего поля формы. Элемент управления «CommandButton» (кнопка) будет добавлен на форму.
Кликнув по элементу управления на форме, вы можете изменять его размер, перетягивая границы за белые квадратики, и перетаскивать по форме, ухватив за одну из границ. Кликнув по заголовку формы или по ее рабочему полю, вы можете также изменять ее размер, перетягивая границы за белые квадратики.
Нажатием клавиши «F4» вызывается окно свойств, с помощью которого можно вручную задавать значения свойств пользовательской формы и элементов управления. В окне свойств отображаются свойства выбранного элемента управления или формы, если выбрана она. Также окно свойств можно вызвать, нажав кнопку «Properties Window» во вкладке «View».
Отображение формы на экране
Чтобы запустить пользовательскую форму для просмотра из редактора VBA, необходимо выбрать ее, кликнув по заголовку или свободному от элементов управления полю, и совершить одно из трех действий:
- нажать клавишу «F5»;
- нажать на треугольник на панели инструментов (на изображении выше треугольник находится под вкладкой «Debug»);
- нажать кнопку «Run Sub/UserForm» во вкладке «Run».
Для запуска пользовательской формы с рабочего листа Excel, можно использовать кнопки, описанные в этой статье. Например, чтобы отобразить форму с помощью «кнопки – элемента ActiveX», используйте в модуле рабочего листа следующий код:
В этой заметке описываются методы создания пользовательских диалоговых окон, которые существенно расширяют стандартные возможности Excel. Диалоговые окна – это наиболее важный элемент пользовательского интерфейса в Windows. Они применяются практически в каждом приложении Windows, и большинство пользователей неплохо представляет, как они работают. Разработчики Excel создают пользовательские диалоговые окна с помощью пользовательских форм (UserForm). Кроме того, в VBA имеются средства, обеспечивающие создание типовых диалоговых окон.[1]
Рис. 1. Работа процедуры GetName
Перед тем как приступить к изучению тонкостей создания диалоговых окон на основе пользовательских форм, следует научиться использовать некоторые встроенные инструменты Excel, предназначенные для вывода диалоговых окон.
Использование окон ввода данных
Окно ввода данных — это простое диалоговое окно, которое позволяет пользователю ввести одно значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, число или диапазон значений. Для создания окна ввода предназначены две функции InputBox: одна— в VBA, а вторая является методом объекта Application.
Функция InputBox в VBA
Функция имеет следующий синтаксис:
InputBox(запрос [, заголовок] [, по_умолчанию] [, xpos] [, ypos] [, справка, раздел])
- Запрос. Указывает текст, отображаемый в окне ввода (обязательный параметр).
- Заголовок. Определяет заголовок окна ввода (необязательный параметр).
- По_умолчанию. Задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
- xpos, ypos. Определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
- Справка, раздел. Указывают файл и раздел в справочной системе (необязательные параметры).
Функция InputBox запрашивает у пользователя одно значение. Она всегда возвращает строку, поэтому результат нужно будет преобразовать в числовое значение. Текст, отображаемый в окне ввода, может достигать 1024 символов (длину допускается изменять в зависимости от ширины используемых символов). Если определить раздел справочной системы, то в диалоговом окне будет отображена кнопка Справка.
Обратите внимание: функция InputBox вызывается в цикле Do Until. Это позволяет убедиться в том, что данные введены в окно. Если пользователь щелкнет на кнопке Отмена или не введет текст, то переменная UserName будет содержать пустую строку, а окно ввода данных появится повторно. Далее в процедуре будет предпринята попытка получить имя пользователя путем поиска первого символа пробела (для этого применяется функция InStr). Таким образом, можно воспользоваться функцией Left для получения всех символов, расположенных слева от символа пробела. Если символ пробела не найден, то используется все введенное имя.
Если строка, предоставленная в качестве результата выполнения функции InputBox, выглядит как число, ее можно преобразовать с помощью функции VBA Val.
В процедуре GetWord пользователю предлагается ввести пропущенное слово (рис. 2). Этот пример также иллюстрирует применение именованных аргументов (р и t). Текст запроса выбирается из ячейки А1 рабочего листа.
Рис. 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 завершит процедуру.
Рис. 4. Пример использования метода InputBox для выбора диапазона
Рис. 5. Метод InputBox автоматически проверяет вводимые данные
Функция VBA MsgBox
MsgBox(запрос[, кнопки][, заголовок][, справка, раздел])
Рис. 6. Константы и значения, используемые для выбора кнопок в функции MsgBox
Рис. 7. Константы, возвращаемые MsgBox
Функция MsgBox возвращает переменную, имеющую тип Integer. Вам необязательно использовать переменную для хранения результата выполнения функции MsgBox. Следующая процедура представляет собой вариацию процедуры GetAnswer.
В файле VBA msgbox.xlsm функция ContinueProcedure в демонстрационных целях представлена в виде процедуры. Функция ContinueProcedure может вызываться из другой процедуры. Например, оператор
If Not ContinueProcedure() Then Exit Sub
Метод Excel GetOpenFilename
Если приложению необходимо получить от пользователя имя файла, то можно воспользоваться функцией InputBox, но этот подход часто приводит к возникновению ошибок. Более надежным считается использование метода GetOpenFilename объекта Application, который позволяет удостовериться, что приложение получило корректное имя файла (а также его полный путь). Данный метод позволяет отобразить стандартное диалоговое окно Открытие документа, но при этом указанный файл не открывается. Вместо этого метод возвращает строку, которая содержит путь и имя файла, выбранные пользователем. По окончании данного процесса с именем файла можно делать все что угодно. Синтаксис (все параметры необязательные):
Application.GetOpenFilename(фильтр_файла, индекс_фильтра, заголовок, множественный_выбор)
- Фильтр_файла. Содержит строку, определяющую критерий фильтрации файлов (необязательный параметр).
- Индекс_фильтра. Указывает индексный номер того критерия фильтрации файлов, который используется по умолчанию (необязательный параметр).
- Заголовок. Содержит заголовок диалогового окна (необязательный параметр). Если этот параметр не указать, то будет использован заголовок Открытие документа.
- Множественный_выбор. Необязательный параметр. Если он имеет значение ИСТИНА, можно выбрать несколько имен файлов. Имя каждого файла заносится в массив. По умолчанию данный параметр имеет значение ЛОЖЬ.
Аргумент Фильтр_файла определяет содержимое раскрывающегося списка Тип файлов, находящегося в окне Открытие документа. Аргумент состоит из строки, определяющей отображаемое значение, а также строки действительной спецификации типа файлов, в которой находятся групповые символы. Оба элемента аргумента разделены запятыми. Если этот аргумент не указывать, то будет использовано значение, заданное по умолчанию: " Все файлы (*.*),*.* " . Первая часть строки Все файлы (*.*) – то текст, отображаемый в раскрывающемся списке тип файлов. Вторая часть строки *.* указывает тип отображаемых файлов.
В следующих инструкциях переменной Filt присваивается строковое значение. Эта строка впоследствии используется в качестве аргумента фильтр_файла метода GetOpenFilename. В данном случае диалоговое окно предоставит пользователю возможность выбрать один из четырех типов файлов (кроме варианта Все файлы). Если задать значение переменной Filt, то будет использоваться оператор конкатенации строки VBA. Этот способ упрощает управление громоздкими и сложными аргументами.
В следующем примере у пользователя запрашивается имя файла. При этом в поле типа файлов используются пять фильтров (код содержится в файле prompt for file.xlsm).
На рис. 11 показано диалоговое окно, которое выводится на экран после выполнения этой процедуры (по умолчанию предлагается фильтр *.csv).
Рис. 11. Метод GetOpenFilename отображает диалоговое окно, в котором выбирается файл
Обратите внимание: переменная FileName определена как массив переменного типа (а не как строка в предыдущем примере). Причина заключается в том, что потенциально FileName может содержать массив значений, а не только одну строку.
Метод Excel GetSaveAsFilename
Данный метод отображает диалоговое окно Сохранение документа и дает пользователю возможность выбрать (или указать) имя сохраняемого файла. В результате возвращается имя файла, но никакие действия не предпринимаются. Синтаксис (все параметры необязательные):
Application.GetSaveAsFilename(начальное_имя, фильтр_файла, индекс_фильтра, заголовок, текст_кнопки)
- Начальное_имя. Указывает предполагаемое имя файла.
- Фильтр_файла. Содержит критерий фильтрации отображаемых в окне файлов.
- Индекс_фильтра. Код критерия фильтрации файлов, который используется по умолчанию.
- Заголовок. Определяет текст заголовка диалогового окна.
Получение имени папки
With Application . FileDialog ( msoFileDialogFolderPicker )Объект 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):
Рис. 12. Диалоговое окно, отображаемое в результате выполнения указанного выше оператора
Метод ExecuteMso принимает лишь один аргумент, idMso, который представляет элемент управления ленты. К сожалению, сведения о многих параметрах в справочной системе отсутствуют.
В результате выполнения следующего оператора отображается вкладка Шрифт диалогового окна Формат ячеек:
На самом деле пользоваться объектами CommandBar не стоит, поскольку вряд ли они будут поддерживаться в будущих версиях Excel.
Отображение формы ввода данных
Многие пользователи применяют Excel для управления списками, информация в которых ранжирована по строкам. В Excel поддерживается простой способ работы с подобными типами данных с помощью встроенных форм ввода данных, которые могут создаваться автоматически. Подобная форма предназначена для работы как с обычным диапазоном, так и с диапазоном, оформленным в виде таблицы (с помощью команды Вставка –> Таблицы –> Таблица). Пример формы ввода данных показан на рис. 13 (см. также файл data form example.xlsm).
Рис. 13. Некоторые пользователи предпочитают применять встроенные формы ввода данных Excel для ввода сведений; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
В силу каких-то неизвестных причин на ленте Excel отсутствует команда, обеспечивающая доступ к форме ввода данных. Подобную команду можно добавить на панель быстрого доступа. Для этого выполните следующие действия.
- Щелкните правой кнопкой мыши на панели быстрого доступа и в контекстном меню выберите параметр Настройка панели быстрого доступа.
- На экране появится вкладка Панель быстрого доступа диалогового окна Параметры Excel.
- В раскрывающемся списке Выбрать команды из выберите параметр Команды не на ленте.
- В появившемся списке выберите параметр Форма.
- Щелкните на кнопке Добавить для добавления выбранной команды на панель быстрого доступа.
- Щелкните на кнопке ОК для закрытия диалогового окна Параметры Excel.
После выполнения перечисленных выше действий на панели быстрого доступа появится новый значок.
Для работы с формой ввода данных следует структурировать данные таким образом, чтобы Excel распознавал их в виде таблицы. Начните с указания заголовков столбцов в первой строке диапазона вводимых данных. Выделите любую ячейку в таблице и щелкните на кнопке Форма панели быстрого доступа. Excel отображает диалоговое окно, в котором будут вводиться данные. Для перемещения между текстовыми полями в целях ввода информации используйте клавишу <Tab>. Если ячейка содержит формулу, результат вычислений отображается в виде текста (а не в формате поля ввода данных). Другими словами, невозможно изменить формулы с помощью формы ввода данных.
По завершении ввода данных в форму щелкните на кнопке Создать. После этого Excel вводит данные в строку рабочего листа, а также очищает диалоговое окно для ввода следующей строки данных.
Используйте метод ShowDataForm для отображения формы ввода данных Excel. Единственное требование заключается в том, что активная ячейка должна находиться в диапазоне. Следующий код активизирует ячейку А1 (в таблице), а затем отображает форму ввода данных.
В Excel VBA у нас есть очень полезный инструмент, который называется UserForm. Это практичный способ получения информации от пользователя. Что такое пользовательская форма в VBA? UserForm похож на окно мастера или диалоговое окно, в которое мы просим пользователей вводить данные, и в нем есть некоторые инструкции.
VBA UserForm также встроен в Excel и может быть создан разработчиками. Чтобы использовать пользовательскую форму VBA, сначала нам нужно активировать вкладку разработчика на вкладке «Параметры». Как только вкладка разработчика активирована, мы можем перейти в Excel VBA и создать пользовательские формы. Пользовательские формы используются для хранения данных в Excel. Это можно сравнить с формами Google, где у нас есть определенный набор инструкций и мы просим пользователя ввести данные в соответствии с инструкциями.
UserForm широко используется повсеместно. В UserForm введенные пользователем данные сохраняются в соответствующем столбце. Это самый практичный способ в Excel получить информацию от пользователя и сохранить данные в Excel относительно в правильном месте.
Как создать пользовательскую форму в Excel VBA?
Ниже приведены различные примеры создания пользовательской формы в Excel с использованием кода VBA.
Вы можете скачать этот шаблон VBA UserForm Excel здесь - шаблон VBA UserForm Excel
Excel VBA UserForm - Пример № 1
Во-первых, давайте перейдем к основам пользовательской формы. Как просмотреть пользовательскую форму и что такое пользовательская форма.
- В рабочем листе Excel перейдите на вкладку Разработчик и щелкните редактор Visual Basic.
- Теперь, как нам добавить пользовательскую форму на этот пустой экран? В инструменте вставки щелкните UserForms.
- Откроется новое окно мастера, и оно пустое, что является нашей пустой формой пользователя.
- В настоящее время он называется userform1, поскольку мы не дали ему никакого имени. Мы можем сделать это, изменив его имя в опции свойств в левой части экрана.
- Давайте изменим имя на образец формы и посмотрим результат.
Наша пользовательская форма теперь называется образцом.
- Теперь давайте попробуем изменить цвет пользовательской формы. В панели инструментов свойств у нас есть выпадающий список, названный как цвет спины, мы можем выбрать любой набор цветов, который мы хотим.
- После того, как я выбрал опцию для черного цвета, мой образец пользовательской формы был изменен следующим образом:
- Как мы запускаем эту форму пользователя? Убедитесь, что мы нажали на саму пользовательскую форму и нажмите кнопку запуска, показанную на скриншоте ниже. Когда мы нажимаем кнопку запуска, мы видим, что на экране Excel появляется пустая форма.
У него нет других вариантов, кроме как закрыть его, потому что мы не добавили к нему никаких других кнопок.
Excel VBA UserForm - Пример № 2
Давайте посмотрим, как добавить кнопки в пользовательскую форму для ввода данных в Excel VBA. Мы сделаем простую пользовательскую форму VBA, в которой мы попросим пользователя ввести его имя, возраст и пол. Этапы создания такой пользовательской формы следующие.
- В рабочем листе Excel перейдите на вкладку разработчика и нажмите на редактор Visual Basic.
- Теперь на вкладке вставки нажмите на пользовательскую форму, чтобы открыть окно пользовательской формы.
- Нам нужно добавить кнопки в эту форму пользователя, чтобы получить ввод от пользователя. Мы видим, что панель инструментов также открыта рядом с нашей пользовательской формой, которая имеет кнопки управления.
Эта панель инструментов содержит различные элементы управления, которые используются в пользовательских формах.
- Так что для нашего примера нам нужно, чтобы имя, возраст и пол были введены пользователем. Нам в основном нужны три метки, которые будут представлять наши инструкции. Нажмите на ярлыки .
- Наведите указатель мыши на форму пользователя, щелкните и перетащите, чтобы вставить метку в форму пользователя.
- В настоящее время он назван как метка 1, нам нужно изменить имя метки на « Имя » для инструкции для пользователя. Нажмите на ярлык и удалите предоставленное имя по умолчанию и вставьте новое имя.
- Теперь вставьте ярлык для возраста и пола аналогичным образом и переименуйте их.
- Теперь рядом с метками нам нужно вставить текстовое поле, чтобы пользователь мог вводить значения. На панели инструментов управления, нажмите на TextBox
- Наведите указатель мыши на ярлыки и нажмите на форму.
- Теперь давайте вставим командную кнопку в форму пользователя, которая будет хранить данные для нас. Из элементов управления панели инструментов нажмите CommandButton .
- Вставьте одну кнопку CommandButton и назовите ее « Отмена ».
- Следующий шаг - переименовать каждое из текстовых полей, чтобы мы могли легко использовать их в наших кодах. Для имени переименуйте текстовое поле для него как Nameva для значения имени и для age как Ageva для пола аналогично Genderva для значения пола,
- Запустите пользовательскую форму, нажав на кнопку воспроизведения или нажав клавишу F5.
- В листе Excel запишите заголовок для данных следующим образом.
- Дважды щелкните по кнопке отправки, которая откроет нам окно кода для кнопки отправки следующим образом.
Код:
- В окне кода объявите переменную, как показано ниже.
Код:
- Теперь давайте переместим первую свободную ячейку в первом столбце со следующим кодом.
Код:
- Давайте сохраним значение, предоставленное пользователем в листе с помощью следующего кода.
Код:
- Теперь дважды нажмите на кнопку «Отмена», это также покажет вам имя автоматического макроса, как это.
Код:
Код:
- Запустите пользовательскую форму с помощью кнопки запуска или нажатием клавиши F5, и мы получим следующий результат.
- Введите значения в текстовые поля следующим образом.
Вот как мы создаем форму пользователя для получения данных от пользователя.
То, что нужно запомнить
- Пользовательские формы встроены или могут быть созданы разработчиком в VBA.
- Свойства пользовательской формы можно изменить в окне мастера свойств в VBA.
- Пользовательские формы должны иметь кнопки для получения данных от пользователя.
- Для запуска пользовательской формы убедитесь, что пользовательская форма выбрана.
Рекомендуемые статьи
Это руководство по VBA UserForm. Здесь мы обсудим, как создать пользовательскую форму в Excel, используя код VBA, а также некоторые практические примеры и загружаемый шаблон Excel. Вы также можете просмотреть наши другие предлагаемые статьи -
Основным преимуществом UserForm является то, что вы можете сэкономить время, которое вы тратите на то, как и как информация должна быть заполнена.
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Понимание пользовательской формы
Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.
Изменения отражаются в пользовательской форме, свойствах и проводнике проекта.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Элементы управления формой
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
этикетка
Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.
Текстовое окно
Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.
Список
Вы можете использовать список для отображения списка одного или нескольких элементов текста, из которых пользователь может выбирать. Используйте список для отображения большого количества вариантов, которые различаются по количеству или содержанию.
- Вставьте ListBox в пользовательскую форму.
- Нажмите на список.
- Введите ProjectCodes для Name в окне свойств ListBox.
Вы можете выбрать один из этих типов списков в окне свойств.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
- Нажмите Инициализировать в правом верхнем углу окна кода.
- Введите следующее в Private Sub UserForm_Initialize ().
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.
Поле со списком
Вы можете использовать ComboBox, который объединяет текстовое поле со списком для создания выпадающего списка. Поле со списком является более компактным, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.
Читайте также: