Excel vba for textbox

Элемент управления пользовательской формы TextBox в VBA Excel. Использование текстового поля для ввода и вывода информации, основные свойства, примеры. Привязка текстового поля к ячейке.

UserForm.TextBox – это элемент управления пользовательской формы, предназначенный для ввода, редактирования и вывода информации в текстовом формате.

Текстовое поле на пользовательской форме

Текстовое поле незаменимо, когда необходимо заполнить пользовательскую форму новой информацией. Например, это может быть ФИО нового сотрудника и его паспортные данные, сумма выручки за день, новый электронный адрес и многое-многое другое.

Если с помощью текстового поля требуется вводить заранее известную информацию, элементы которой можно сгруппировать в список, то в этом случае удобнее вместо элемента управления TextBox использовать ListBox или ComboBox.

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

Иногда, если на пользовательской форме используется только одно текстовое поле и кнопка «OK» (или кнопки «OK» и «Отмена»), для ввода информации такую форму можно заменить функцией InputBox, а для вывода информации, когда не требуется редактирование отображаемого текста, – функцией MsgBox.

Свойства текстового поля

Свойство Описание
AutoSize* Автоподбор размера текстового поля. True – размер автоматически подстраивается под длину размещаемой строки. False – размер элемента управления определяется свойствами Width и Height.
AutoTab Включение автоматической табуляции – передачи фокуса следующему элементу управления при достижении максимального числа символов при значениях свойства MaxLenght > 0. True – автоматическая табуляция включена, False – выключена.
ControlSource Ссылка на источник данных для поля TextBox.
ControlTipText Текст всплывающей подсказки при наведении курсора на TextBox.
Enabled Возможность ввода, редактирования, копирования, вставки, удаления текста. True – все перечисленные опции включены, False – выключены (цвет текста в поле становится серым).
Font Шрифт, начертание и размер текста в поле.
Height Высота текстового поля.
Left Расстояние от левого края внутренней границы пользовательской формы до левого края текстового поля.
Locked Запрет ввода, редактирования, удаления текста. True – перечисленные опции запрещены (разрешено выделение и копирование текста), False – перечисленные опции разрешены.
MaxLenght Максимальная длина строки. По умолчанию – 0, что означает – ограничений нет.
Multiline Устанавливает многострочный (True) или однострочный (False) режим ввода-вывода текста.
PasswordChar Задает символ, который будет отображаться при вводе знаков пароля.
TabIndex Определяет позицию элемента управления в очереди на получение фокуса при табуляции, вызываемой свойством AutoTab или нажатием клавиш «Tab», «Enter». Отсчет начинается с 0.
Text** Текстовое содержимое (значение) поля (=Value).
TextAlign Выравнивание текста: 1 (fmTextAlignLeft) – по левому краю, 2 (fmTextAlignCenter) – по центру, 3 (fmTextAlignRight) – по правому краю.
Top Расстояние от верхнего края внутренней границы пользовательской формы до верхнего края текстового поля.
Value** Текстовое содержимое (значение) поля (=Text).
Visible Видимость текстового поля. True – TextBox отображается на пользовательской форме, False – TextBox скрыт.
Width Ширина текстового поля.
WordWrap Актуально при Multiline = True. Переход на новую строку при достижении границы текстового поля. True – переход включен, False – переход выключен.

* При использовании свойства AutoSize в значении True следует учитывать, что автоматическое изменение размеров поля при вводе текста может нарушить дизайн пользовательской формы.
** Text и Value — это два обозначения одного и того же свойства. Если в окне Properties элемента управления TextBox в поле свойства Text начать ввод строки, в поле Value ввод будет дублироваться. И наоборот, при вводе текста в поле свойства Value, дублирование произойдет в поле Text.

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

Свойства BackColor, BackStyle, BorderColor, BorderStyle отвечают за внешнее оформление текстового поля и его границ. Попробуйте выбирать доступные значения этих свойств в окне Properties, наблюдая за изменениями внешнего вида элемента управления TextBox на проекте пользовательской формы.

Привязка текстового поля к ячейке

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

1. В окне Properties элемента управления TextBox в поле свойства ControlSource необходимо указать адрес ячейки:

Окно Properties-TextBox

2. Присвоить свойству ControlSource адрес ячейки в коде VBA Excel:

UserForm1.TextBox1.ControlSource = «C5»

Теперь ячейка C5 активного листа будет привязана к элементу управления TextBox1. При открытии формы текстовое поле будет заполнено значением ячейки C5.

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

Sub Test()

UserForm1.TextBox1.ControlSource = «C5»

UserForm1.Show 0

End Sub

Измените значение ячейки C5 и нажмите клавишу «Tab» или «Enter» – изменения будут продублированы в текстовом поле на форме. Измените содержимое поля TextBox1, нажмите клавишу «Tab» или «Enter», передав фокус другому элементу управления, – изменения продублируются в ячейке C5.

Чтобы привязать текстовое поле к ячейке неактивного листа, необходимо в адресе указать имя листа по ярлыку с разделителем «!»:

UserForm1.TextBox1.ControlSource = «Лист2!A3»

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

UserForm1.TextBox1.ControlSource = «‘Мой лист’!B6»

Точно также адрес ячейки конкретного листа можно указать непосредственно в окне Properties элемента управления TextBox в поле свойства ControlSource (без парных кавычек).

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

Примеры использования TextBox

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

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

‘ячейки A2 и переменной a1

UserForm1.TextBox1.Text = Range(«A2»)

UserForm1.TextBox1.Text = a1

‘Присвоение ячейке B3 и переменной a2

‘значения текстового поля

Cells(3, 2) = UserForm1.TextBox1.Text

a2 = UserForm1.TextBox1.Value

‘Свойства Text и Value элемента

‘управления TextBox равнозначны

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

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

Создаем новую пользовательскую форму с именем UserForm2. Если у вас другое имя формы, это не имеет значения, так как обращаться к ней будем с помощью ключевого слова «Me». Открываем модуль созданной формы и вставляем в него следующий код VBA Excel:

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

Private Sub UserForm_Initialize()

Dim myTextBox As Control

‘Создаем новый TextBox и присваиваем его переменной

Set myTextBox = Me.Controls.Add(«Forms.TextBox.1»)

‘Задаем размеры и заголовок пользовательской формы

With Me

  .Height = 100

  .Width = 220

  .Caption = «Форма №2»

End With

‘Присваиваем значения свойствам текстового поля

With myTextBox

  .Width = 100

  .Height = 20

  ‘Left и Top рассчитаны для Excel 2016*

  .Left = 60 5

  .Top = 40 15

  ‘Добавляем всплывающую подсказку

  .ControlTipText = «Введите дату подписания договора»

  ‘Вставляем в поле текущую дату

  .Text = Format(Now, «DD.MM.YYYY»)

  ‘Выравниваем текст по центру

  .TextAlign = 2

End With

End Sub

В результате выполнения кода откроется следующая форма с всплывающей подсказкой при наведении на TextBox курсора:

TextBox с всплывающей подсказкой

* Значения свойств Left и Top рассчитаны для Excel 2016. Вычитаемые числа зависят от толщины границ пользовательской формы, которые в других версиях Excel могут отличаться.

A text box is an empty field where a user can fill in a piece of text. To create a text box in Excel VBA, execute the following steps.

1. On the Developer tab, click Insert.

2. In the ActiveX Controls group, click Text Box.

Create a text box in Excel VBA

3. Drag a command button and a text box on your worksheet.

4. Right click the command button (make sure Design Mode is selected).

5. Click View Code.

View Code

Note: you can change the caption and name of a control by right clicking on the control (make sure Design Mode is selected) and then clicking on Properties. Change the caption of the command button to Import Data. For now, we will leave TextBox1 as the name of the text box.

6. Add the following code line:

TextBox1.Text = «Data imported successfully»

7. Click the command button on the sheet (make sure Design Mode is deselected).

Result:

Text Box

8. To clear a text box, use the following code line:

TextBox1.Value = «»

Note: although in some situations it can be useful to directly place a text box on your worksheet, a text box is particularly useful when placed on a Userform.

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

In Excel VBA tutorial 4 we learned how to add different tools to the user form. In today’s tutorials, we will learn about the properties of text boxes. We will learn about different formats of text boxes.

About User Form Properties In Tutorial 3, we saw some important points. In the same way every tool has its properties. Some tabs are more or less according to the tool.

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

1. Name – Any name can be given to the text box.

2. Text box Size – Option of drag and drop with the mouse is better to increase the size or more.

3. Control Tip Text – When the application is run, you have to type the text in the control tip text to show a text tip as soon as the mouse cursor is moved over the text box.

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

4. Enable – Many times the project has to show the text in the text box, but to ban it from editing, Select False Option in the option of enable, no user can edit the text of the text box.

5. Visible – To hide the text box, the text box will be hidden as soon as it is false in front of the Visible option.

6. Text – To show any text by default in the text box, you can type the words type in front of the text option.

7. With the option of Text Align, Back Color, Border Color, you can change the design of the text box.

8. Password Character – Type one of the special characters in the password char to show the text * or # or @ of the text box as such.

For example – When typing a text box password, all we need to do is to show * star *, type password Char  *  .

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

How to change the text box format?

1. Text box currency format

To change the text box Value to currency format, double click on the text box or right click to view code.

Private Sub TextBox1_Change() 

End Sub

The text box name and change will appear. That means, while making any change in the text box, we can give the command in it. You can see multiple options in the drop down option by clicking above the change option above. We will be able to make any changes according to the behavior of the text box. We have to type the code of the format in the line below Private Sub TextBox1_Change ().

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

Private Sub TextBox1_Change()

Me.TextBox1.Text = Format(Me.TextBox1, “####,##”)

End Sub

Now run the project by pressing F5. And type any number in the text box. The value will be converted to currency format only while typing.

If you need a decimal number in the currency format, then click on the text Behavior After Update

Me.TextBox1.Text = Format (Me.TextBox1, “####, ##. 00”) Apply this code.

Private Sub TextBox1_AfterUpdate()

Me.TextBox1.Text = Format(Me.TextBox1, “####,##”)

End Sub

2. Text Box Date Format –

To convert a value to a date format, double-click on the text box and select Text Behavior After Update. And apply the format code below.


Private Sub TextBox2_AfterUpdate ()

Me.TextBox2.Text = Format (Me.TextBox2, “dd / mm / yyyy”)

End Sub

Excel VBA Tutorial 5 - Text Box Properties, Text Box Currency Format and Date Format

You can use dashes or slashes in the date format or you can use a different format.

dd-mm-yyyy

dd/mmm/yyyy

mmm/dd/yyyy

Similarly, you can apply any format in the text box.

Me. TextBox .Text = Format (TextBox, “Format”)

  • Что такое VBA TextBox в Excel?

Что такое VBA TextBox в Excel?

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, такие как изменение шрифта, изменение размера и т. Д.

Шаг 7: Введите текст « Добро пожаловать в VBA TextBox! В TextBox под UserForm.

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

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

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

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

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

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

Шаг 4: Измените заголовок командной кнопки на « Отправить » в свойствах. Вы можете перейти к свойствам командной кнопки, щелкнув правой кнопкой мыши Command Button> Click Properties .

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

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

Код:

 Private Sub CommandButton1_Click () TextBox1.Value = "Меня зовут Лалит!" End Sub 

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

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

Пример # 3 — Ограничить ввод TextBox, чтобы принимать только числовые значения

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

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

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

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

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

Код:

 Private Sub My_Age_Change () End Sub 

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

Код:

 Private Sub My_Age_Change () Если не End Sub 

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

Код:

 Private Sub My_Age_Change () Если не IsNumeric (My_Age.Value) End Sub 

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

Код:

 Private Sub My_Age_Change () Если не IsNumeric (My_Age.Value), то End Sub 

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

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

Код:

 Private Sub My_Age_Change () Если не IsNumeric (My_Age.Value), то MsgBox "Извините! Разрешены только номера." End Sub 

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

Код:

 Private Sub My_Age_Change () Если не IsNumeric (My_Age.Value), то MsgBox "Извините! Разрешены только номера." End If End Sub 

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

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

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

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

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

Что ж! Что ж!! Ну, это, я стреляю в сообщение о том, что разрешены только цифры Это произошло потому, что этот код, изначально написанный с условием IF, не имеет обходного пути, что делать, если число не положительное. Более того, возраст не может быть отрицательным. Правильно? Поэтому я получаю предупреждающее сообщение, как вы можете видеть выше. Однако, если вы нажмете OK в окне сообщения и попытаетесь ввести номер, это позволит вам сделать это. Но я не буду рекомендовать нарушать правила там.

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

Как и ожидалось, как только я ввел первую строковую букву, система помешала мне сделать это, бросив сообщение. Это связано с тем, что мы упомянули в нашем коде условие о том, что если значение не является числовым, отправьте пользователю сообщение о том, что допускаются только числовые значения.

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

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

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

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

  1. Как использовать функцию VBA IsNumeric?
  2. Создание поля со списком в Excel
  3. Вставьте флажок в Excel
  4. Функция VBA UCASE в Excel
  5. Как закрыть UserForm в VBA?

Понравилась статья? Поделить с друзьями:
  • Excel vba picture load
  • Excel vba listbox снять выделение
  • Excel vba for print
  • Excel vba personal xlsb
  • Excel vba listbox значение