Textbox в excel для чего

Элемент управления пользовательской формы 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 могут отличаться.

  • Что такое 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?

Содержание

  1. VBA TextBox — Примеры для создания TextBox в Excel VBA (шаблон Excel)
  2. Что такое VBA TextBox в Excel?
  3. Примеры Excel VBA TextBox
  4. Пример № 1 — Как вставить TextBox в VBA?
  5. Пример №2 — Установка значения в VBA TextBox
  6. Пример # 3 — Ограничить ввод TextBox, чтобы принимать только числовые значения
  7. То, что нужно запомнить
  8. Рекомендуемые статьи
  9. VBA Excel. Элемент управления TextBox (текстовое поле)
  10. Элемент управления TextBox
  11. Свойства текстового поля
  12. Привязка текстового поля к ячейке

VBA TextBox — Примеры для создания TextBox в Excel VBA (шаблон 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: В коде вставьте строку нового кода в подпроцедуру, как показано ниже.

Код:

Этот выделенный код позволяет назначать значение справа, заключенное в двойные кавычки, в 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 .

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

Код:

Шаг 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, как показано ниже:

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

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

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

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

Что ж! Что ж!! Ну, это, я стреляю в сообщение о том, что разрешены только цифры Это произошло потому, что этот код, изначально написанный с условием 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?

Источник

VBA Excel. Элемент управления TextBox (текстовое поле)

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

Элемент управления TextBox

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

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

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

Свойство Описание
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 необходимо указать адрес ячейки:

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

Источник

Хитрости »

14 Февраль 2022              1555 просмотров


Пользовательские формы(UserForm) разрабатываются специально для удобства взаимодействия пользователей с программой, и в основном для ввода и записи данных(напомню, что создается форма из редактора VBA: InsertUserForm). Наиболее часто используемым элементом форм является TextBox, который позволяет вводить любую текстовую информацию. И если с ручным вводом проблем обычно не возникает, то с вставкой в TextBox данных из буфера обмена могут возникнуть сложности. Иначе говоря, пользователь скопировал откуда-то текст и хочет вставить его в TextBox. Или наоборот — надо скопировать и перенести в другой TextBox или еще куда-то. Но не может. И не потому, что такой возможности в принципе нет, а потому, что «из коробки» TextBox в VBA не имеет своего меню «Вырезать-Копировать-Вставить» и копирование-вставка в них возможна только сочетаниями горячих клавиш Ctrl++C(копировать), Ctrl++V(вставить), Ctrl+X(вырезать). А зачастую формы(UserForm) разрабатываются для таких пользователей, которые могут даже не подозревать о горячих клавишах. И обязанность разработчика снабдить такие формы подобными командами. Чтобы по правому клику в TextBox появлялось свое меню с заветными командами:
Свое меню Копировать-Вырезать-Вставить
Что интересно – сами команды копирования-вырезки-вставки есть в TextBox-ах «из коробки», а вот меню для них – нет. И именно меню и его обработку мы и научимся делать.
На самом деле все не так уж сложно, но начинающим программировать в VBA может показаться иначе. Первое, что необходимо сделать – это создать свое меню, которое будет обрабатывать копирование-вырезку-вставку. Притом создавать его мы будем при первом старте UserForm(событие UserForm_Initialize). А при закрытии формы меню правильно будет удалить. За все это у нас будут отвечать коды ниже:

'при вызове формы
'   создаем свое меню "Вырезать-Копировать-Вставить" для вызова из TextBox
Private Sub UserForm_Initialize()
    Call DelCustomCCPMenu  'на всякий случай удаляем меню, если вдруг оно уже есть
    Set oPopupMenu = Application.CommandBars.Add("CustomCCP_PopupMenu", msoBarPopup)
    With oPopupMenu
        With .Controls.Add(msoControlButton)
            .Caption = "Копировать"               'текст кнопки
            .FaceId = "19"                        'код иконки для кнопки
            .OnAction = "MyPopupMenuButtonCClick" 'имя процедуры, которая будет выполнена при нажатии кнопки
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "Вставить"                 'текст кнопки
            .FaceId = "22"                        'код иконки для кнопки
            .OnAction = "MyPopupMenuButtonPClick" 'имя процедуры, которая будет выполнена при нажатии кнопки
        End With
        With .Controls.Add(msoControlButton)
            .Caption = "Вырезать"                   'текст кнопки
            .FaceId = "21"                          'код иконки для кнопки
            .OnAction = "MyPopupMenuButtonCutClick" 'имя процедуры, которая будет выполнена при нажатии кнопки
        End With
    End With
End Sub
'при закрытии формы
'удаляем свое меню "Вырезать-Копировать-Вставить" для вызова из TextBox
Private Sub UserForm_Terminate()
    Call DelCustomCCPMenu 'вызов функции удаления меню
End Sub
'функция удаления созданного ранее меню
Function DelCustomCCPMenu()
    On Error Resume Next 'пропускаем ошибки, если вдруг меню было удалено ранее
    Application.CommandBars("CustomCCP_PopupMenu").Delete
End Function

По сути код выше достаточно просто вставить «внутрь» формы: правая кнопка мыши на форме —View Code -вставляем приведенный выше код. Имя самой формы нигде менять не надо. Это означает, что строки Private Sub UserForm_Initialize() и Private Sub UserForm_Terminate должны оставаться именно такими независимо от того, какое имя у формы.
Теперь останется для TextBox-а на форме прописать код вызова нашего меню при нажатии правой кнопки мыши:

'отслеживаем нажатие правой кнопки мыши внутри TextBox-а
'   Button = 1 - левая кнопка
'   Button = 2 - правая кнопка
Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 2 Then
        Set tbxAct = TextBox1
        Application.CommandBars("CustomCCP_PopupMenu").ShowPopup
    End If
End Sub

Напомню, что все эти коды мы должны прописать в модуль UserForm. И последний штрих – в любом стандартном модуле(InsertModule) прописываем обработку копирования-вставки:

'копировать
Private Sub MyPopupMenuButtonCClick()
    UserForm1. TextBox1.Copy
End Sub
'вставить
Private Sub MyPopupMenuButtonPClick()
    UserForm1. TextBox1.Paste
End Sub
'вырезать
Private Sub MyPopupMenuButtonCutClick()
    UserForm1. TextBox1.Cut
End Sub

Это основной принцип использования меню. По такому же принципу можно добавить и другие команды в меню, но в зависимости от их функционала будет зависеть сложность итогового кода.
Плюс, выше приведен пример всего для одного TextBox-а. Но как быть, если их два, три и более? По-хорошему код надо модифицировать, добавлять еще пару переменных и обработок. В приложенном к статье файле именно так и сделано – там показана обработка двух TextBox-ов:
Скачать пример:

  Свое меню Копировать-Вставить в TextBox.xls (77,5 KiB, 216 скачиваний)

Хотя и это не предел: можно автоматом делать это для всех TextBox-ов на форме, если привлечь модули классов. Но поняв принцип приведенного в этой статье кода и принцип работы модулей классов(а так же изучив код из файла-примера), сделать это самостоятельно уже не составит труда. Ниже приложен файл с реализацией обработки через модули классов — т.е. меню будет автоматом добавлено для ВСЕХ TextBox-ов на форме:

Скачать пример:

  Свое меню Копировать-Вставить в TextBox — классы.xls (85,0 KiB, 182 скачиваний)

Так же см.:
Что такое модуль? Какие бывают модули?
Работа с модулями классов
Как быстро заполнить/очистить элементы на форме(TextBox-ы, ComboBox-ы)


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

VBA TextBox

What is VBA TextBox in Excel?

VBA TextBox is one of the many controls from UserForm controls in Excel. VBA TextBox can come handy when you want to have input from user like their name, age, address, salary, etc. Using TextBox control, you can allow users to input this kind of information and save many of your time as well as typo errors. VBA TextBox can consist of Static or Dynamic Data.

UserForm itself is a very useful tool which has different control options like TextBox, MsgBox, and InputBox, etc. which provide a more practical way to get data from user so that you can functionally process that data and find out some useful insights out of it.

In this article, you will be getting hands-on experience on Excel VBA TextBox.

Examples of Excel VBA TextBox

Below are the different examples of VBA TextBox in Excel.

You can download this VBA TextBox Excel Template here – VBA TextBox Excel Template

Example #1 – How to Insert TextBox in VBA?

Below are the steps to insert TextBox in Excel VBA.

Step 1: Open an excel file and hit Alt + F11 to navigate to VBA pane.

Step 2: As we already have discussed, TextBox is an option available in UserForm. So we need to insert UserForm in VBE. Go to Insert Menu > Click UserForm.

VBA TextBox Example 1-1

Step 3: As soon as you insert a UserForm in VBA you can see a Toolbox option associated with it and have different options associated with UserForm.

VBA TextBox Example 1-2

Step 4: In this toolbox select TextBox.

VBA TextBox Example 1-3

Step 5: Drag this TextBox on the user form.

VBA TextBox Example 1-4

Step 6: Hit F4 to see the properties of UserForm (Alternatively you can do this by right clicking on UserForm inserted). These properties allow you to make some necessary changes like changing the name of UserForm to be able to access it easily.

VBA TextBox Example 1-5

Some other basic changes you can do with properties pane of UserForm are like changing the Font, Changing the size, etc.

Step 7: Input the text as “Welcome to VBA TextBox!” in TextBox under UserForm.

Example 1-6

This is how you can create a VBA TextBox.

Example #2 – Setting Value to VBA TextBox

Let’s see how we can set the values for TextBox. It is sometimes mandatory to set the values otherwise, the user will input anything of their interest.

Step 1: Insert a New UserForm in VBE. Go to Insert menu > click on UserForm.

VBA TextBox Example 2-1

Step 2: From UserForm Tools, select TextBox and drag it to UserForm.

VBA TextBox Example 2-2

Step 3: Insert a CommandButton under UserForm in the same way you added TextBox.

VBA TextBox Example 2-3

Step 4: Change the caption of the command button to “Submit” under properties. You can navigate to properties of command button by Right Click on Command Button > Click Properties.

VBA TextBox Example 2-4

Step 5: Double click on the submit button or Right click on it and select View Code.

VBA TextBox Example 2-5

Step 6: In the code, insert a line of new code within sub-procedure as below.

Code:

Private Sub CommandButton1_Click()

TextBox1.Value = "My Name is Lalit!"

End Sub

VBA TextBox Example 2-6

This highlighted code allows you to assign the value at right enclosed in double quotes to the TextBox. You can also use TextBox.Text property instead of TextBox.Values to set the value for TextBox.

Step 7: Hit F5 or Run button under VBE to run this code, you will see a UserForm with empty TextBox. As soon as you hit the submit button, the text assigned to TextBox will appear there in it.

Example 2-7

Example #3 – Restrict TextBox Input to Accept only Numeric Values

Follow the below steps:

Step 1: Insert a new UserForm in your VBA and add TextBox in it.

VBA TextBox Example 3-1

Step 2: Change the name of TextBox under Properties section to “My_Age”.

My_Age Example 3-2

Step 3: Double click on TextBox or right click on it and select View Code.

VBA TextBox Example 3-3

You’ll be able to see the initial sub-procedure as below:

Code:

Private Sub My_Age_Change()

End Sub

VBA TextBox Example 3-4

Step 4: Now, try to add an If the condition which starts with If Not.

Code:

Private Sub My_Age_Change()

If Not

End Sub

VBA TextBox Example 3-5

Step 5: Ask compiler to check if the value of TextBox “My_Age” is numeric or not using IsNumeric Keyword in front of If Not condition.

Code:

Private Sub My_Age_Change()

If Not IsNumeric(My_Age.Value)

End Sub

VBA TextBox Example 3-6

Step 6: As every IF condition asks, add a Then Keyword for it.

Code:

Private Sub My_Age_Change()

If Not IsNumeric(My_Age.Value) Then

End Sub

VBA TextBox Example 3-7

In this piece of code, you are asking the compiler to check whether the value inputted by the user under TextBox is numeric or not. If, it’s not numeric, then what to do? Follow the next step.

Step 7: With the use of MsgBox, add a comment like “Sorry! Only Numbers are Allowed.” to be displayed if, the value in TextBox is not numeric.

Code:

Private Sub My_Age_Change()

If Not IsNumeric(My_Age.Value) Then

  MsgBox "Sorry! Only Numbers are Allowed."

End Sub

VBA TextBox Example 3-8

Step 8: Now, close this IF statement by using keyword End IF.

Code:

Private Sub My_Age_Change()

If Not IsNumeric(My_Age.Value) Then

  MsgBox "Sorry! Only Numbers are Allowed."

End If

End Sub

VBA TextBox Example 3-9

Step 9: Now, run this code by hitting the F5 button from your keyboard or Run button from VBE and see the output. You’ll get a TextBox as shown below:

Example 3-10

Now, I try to input an Integer value in it and see whether it actually allows me to input the same or not.

Example 3-11

Bingo, it allows me to store the integer value.

Now, let’s try to add some float (Value with Decimal points) to this text box and see whether it allows us to input the same.

Example 3-12

Let’s check if this text box allows us to store some negative values under it or not. I will type some negative number and check.

Example 3-13

Well! Well!! Well!!!, it shoots a message me saying only numbers are allowed. It happened because this code written initially is with IF condition, it doesn’t have any workaround what to do if the number is non-positive. Moreover, Age can’t be negative. Right? Therefore, I am getting a warning message as you can see above. However, If you click OK in the message box and try inputting the number, it will allow you to do so. But I will not recommend breaking the rules over there.

Finally, let’s try some text string in the box and see if it allows the same to be stored under textbox or not.

Example 3-14

As rightly expected, as soon as I entered the first string letter, the system prevented me to do so by throwing a message. This is because we have mentioned a condition in our code saying if the value is not numeric, please throw a message towards the user saying only numeric values are allowed.

Things to Remember

  • VBA TextBox is a special option under UserForm. Which is designed to take input from the user itself.
  • There are two methods to set the values for a TextBox: by using TextBox.Text and by using TextBox.Value.
  • Sometimes it’s mandatory to restrict the user input so that we are getting the right type of data.

Recommended Articles

This is a guide to VBA TextBox. Here we discuss how to Create TextBox in Excel VBA along with practical examples and downloadable excel template. You can also go through our other suggested articles –

  1. VBA IsNumeric
  2. VBA UCASE
  3. VBA Close UserForm
  4. VBA Text

Понравилась статья? Поделить с друзьями:
  • Text overflow in word table
  • Textbox with scrollbar in excel
  • Text overflow break word
  • Textbox vba excel только цифры
  • Text over picture word