Как создать textbox excel

Обновлено: 08.07.2024

Свойство TextBox.SelStart может принимать значения от 0 до длины строки, тип данных – Integer. Пример расположения точек вставки в строке «На дереве»: 0 Н 1 а 2 3 д 4 е 5 р 6 е 7 в 8 е 9 .

Присвоение свойству SelStart нового значения отменяет ранее сделанное выделение, задает свойству SelLength значение 0 и помещает точку вставки в указанное место.

При присвоении свойству TextBox.SelStart значения, превышающего длину строки, VBA Excel автоматически уменьшает его до длины строки. Присвоение свойству SelStart значения меньше нуля вызывает ошибку.

Свойство TextBox.SelLength

SelLength – это свойство элемента управления TextBox, которое задает или возвращает количество выделяемых (выделенных) символов в строке, содержащейся в текстовом поле, начиная с начальной позиции, определяемой свойством TextBox.SelStart.

Свойство TextBox.SelLength может принимать значения от 0 до длины строки, тип данных – Integer.

При присвоении свойству SelLength значения, превышающего длину строки от точки вставки до ее конца, VBA Excel автоматически уменьшает это значение до длины строки от точки вставки до ее окончания.

Если значение свойства TextBox.SelLength равно нулю, значит выделенного текста нет. Присвоение этому свойству значения меньше нуля вызывает ошибку.

Свойство TextBox.SelText

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

Если в текстовом поле нет выделенных символов, свойство SelText возвращает пустую строку.

При присвоении свойству SelText, содержащему выделение, новой строки с помощью оператора присваивания (TextBox.SelText = «Новая строка»):

  • ранее выделенный текст заменяется новым;
  • свойству SelText присваивается пустая строка;
  • выделение снимается (свойству SelLength присваивается значение 0);
  • курсор устанавливается в конце вставленной подстроки.

Примеры кода VBA Excel

Свойства SelStart, SelLength, SelText доступны в VBA Excel независимо от того, установлен ли на элемент управления TextBox фокус. Но передача фокуса текстовому полю нужна для того, чтобы видеть выделенный участок текста или курсор в точке вставки.

Для реализации первых двух примеров достаточно разместить на пользовательской форме только текстовое поле TextBox1. Фокус в коде VBA Excel передавать не нужно, так как это единственный элемент управления на форме и фокус всегда на нем.

Пример 1
Установка курсора между четвертым и пятым символом строки в текстовом поле:

Создайте или откройте файл 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», используйте в модуле рабочего листа следующий код:


VBA TextBox является одним из многих элементов управления из элементов управления UserForm в Excel. VBA TextBox может пригодиться, если вы хотите, чтобы пользователь вводил данные, такие как его имя, возраст, адрес, зарплата и т. Д. Используя элемент управления TextBox, вы можете позволить пользователям вводить такую ​​информацию и сэкономить много времени, а также опечатки., VBA TextBox может состоять из статических или динамических данных.

UserForm сам по себе является очень полезным инструментом, который имеет различные параметры управления, такие как TextBox, MsgBox, InputBox и т. Д., Которые предоставляют более практичный способ получения данных от пользователя, чтобы вы могли функционально обрабатывать эти данные и находить из них некоторые полезные идеи.,

В этой статье вы получите практический опыт работы с Excel VBA TextBox.

Примеры Excel VBA TextBox

Ниже приведены различные примеры VBA TextBox в Excel.

Вы можете скачать этот шаблон Excel для VBA TextBox здесь - Шаблон Excel для VBA TextBox

Пример № 1 - Как вставить TextBox в VBA?

Ниже приведены шаги для вставки TextBox в Excel VBA.

Шаг 1: Откройте файл Excel и нажмите Alt + F11, чтобы перейти на панель VBA.

Шаг 2: Как мы уже обсуждали, TextBox - это опция, доступная в пользовательской форме. Поэтому нам нужно вставить UserForm в VBE. Перейдите в меню «Вставка» > нажмите «Пользовательская форма» .


Шаг 3: Как только вы вставляете пользовательскую форму в VBA, вы можете видеть параметр Toolbox, связанный с ним, и иметь различные параметры, связанные с UserForm.


Шаг 4: В этом наборе инструментов выберите TextBox .


Шаг 5: Перетащите этот TextBox на форму пользователя.


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


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


Вот как вы можете создать VBA TextBox.

Пример №2 - Установка значения в VBA TextBox

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

Шаг 1: Вставьте новую пользовательскую форму в VBE. Перейдите в меню « Вставка» > нажмите «Пользовательская форма».


Шаг 2: Из UserForm Tools выберите TextBox и перетащите его в UserForm.


Шаг 3: Вставьте CommandButton под UserForm так же, как вы добавили TextBox.



Шаг 5: Дважды щелкните по кнопке отправки или щелкните правой кнопкой мыши и выберите « Просмотреть код» .


Шаг 6: В коде вставьте строку нового кода в подпроцедуру, как показано ниже.

Код:


Этот выделенный код позволяет назначать значение справа, заключенное в двойные кавычки, в TextBox. Вы также можете использовать свойство TextBox.Text вместо TextBox.Values, чтобы установить значение для TextBox.

Шаг 7: Нажмите F5 или кнопку Run под VBE, чтобы запустить этот код, вы увидите пользовательскую форму с пустым TextBox. Как только вы нажмете кнопку отправки, там появится текст, назначенный для TextBox.

Выполните следующие шаги:

Шаг 1: Вставьте новую пользовательскую форму в VBA и добавьте в нее TextBox.


Шаг 2: Измените имя TextBox в разделе «Свойства» на « My_Age ».


Шаг 3: Дважды щелкните TextBox или щелкните его правой кнопкой мыши и выберите View Code .


Вы сможете увидеть начальную подпроцедуру, как показано ниже:

Код:


Шаг 4: Теперь попробуйте добавить условие If, которое начинается с If Not.

Код:


Шаг 5: Попросите компилятор проверить, является ли значение TextBox «My_Age» числовым или не использует IsNumeric Keyword перед условием «Если не».

Код:


Шаг 6: Когда каждое условие IF запрашивает, добавьте ключевое слово Then для него.

Код:


В этом фрагменте кода вы просите компилятор проверить, является ли значение, введенное пользователем в TextBox, числовым или нет. Если это не цифра, то что делать? Следуйте следующему шагу.

Шаг 7: С помощью MsgBox добавьте комментарий типа «Извините! Разрешены только цифры. », Если значение в TextBox не является числовым.

Код:


Шаг 8: Теперь закройте этот оператор IF, используя ключевое слово End IF.

Код:


Шаг 9: Теперь запустите этот код, нажав кнопку F5 на клавиатуре или кнопку Run из VBE, и просмотрите результат. Вы получите TextBox, как показано ниже:

Теперь я пытаюсь ввести в него целочисленное значение и посмотреть, позволяет ли оно мне вводить то же самое или нет.


Бинго, это позволяет мне хранить целочисленное значение.

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


Давайте проверим, позволяет ли это текстовое поле хранить некоторые отрицательные значения под ним или нет. Я наберу некоторое отрицательное число и проверю.


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


То, что нужно запомнить

  • VBA TextBox - это специальная опция в пользовательской форме. Который предназначен для ввода данных от самого пользователя.
  • Есть два способа установить значения для TextBox: с помощью TextBox.Text и с помощью TextBox.Value.
  • Иногда необходимо ограничить ввод данных пользователем, чтобы мы получали правильный тип данных.

Рекомендуемые статьи

Это руководство по VBA TextBox. Здесь мы обсудим, как создать TextBox в Excel VBA вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -


В 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. Вы также можете просмотреть наши другие предлагаемые статьи -

Читайте также: