Элемент управления пользовательской формы 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 необходимо указать адрес ячейки:
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 курсора:
* Значения свойств Left и Top рассчитаны для Excel 2016. Вычитаемые числа зависят от толщины границ пользовательской формы, которые в других версиях Excel могут отличаться.
Excel VBA TextBox
A TextBox is simply a box used to get input from a user. Text boxes are a part of UserForms. For example, in the Developer tab in any Excel worksheet, if we want to make text boxes in a UserForm, we can select the textbox option from user form controls in VBA, or in the worksheet, we can select it from the Design tab.
VBA TextBox is one of the many controls of the UserForm. By displaying the text box on the UserForm, we can ask them to enter the data into the text box. Furthermore, it can store the data entered by the user on the worksheet with simple codes.
Userforms are very attractive in VBA codingVBA code refers to a set of instructions written by the user in the Visual Basic Applications programming language on a Visual Basic Editor (VBE) to perform a specific task.read more. It helps us immensely, especially when we need input from the users. With UserForms, we have many controls. For example, to get the input value from the users, “Text Box” is the ideal option in a UserForm. By putting a text box on the UserForm, we can tell the user to enter the required value in the text box we display. If you have no idea about VBA text boxes, this article will take a tour of VBA text boxes.
Table of contents
- Excel VBA TextBox
- How to Insert TextBox in VBA UserForm?
- TextBox Properties
- Example of using TextBox in Userform
- Recommended Articles
- How to Insert TextBox in VBA UserForm?
You are free to use this image on your website, templates, etc, Please provide us with an attribution linkArticle Link to be Hyperlinked
For eg:
Source: VBA TextBox (wallstreetmojo.com)
How to Insert TextBox in VBA UserForm?
You can download this VBA Text Box Template here – VBA Text Box Template
To insert a text box first, we need to insert a UserForm. To insert the UserForm, go to Insert > UserForm.
As soon as you click on UserForm, we will use UserForm just like another module.
Click on UserForm to see the controls of the UserForm.
From this “Controls” toolbox, select “TextBox” and drag on the UserForm.
With this, we can see many properties associated with this text box.
TextBox Properties
Press the F4 key to see the properties of the TextBox.
As we can see, the text box has a name, color, and border like this many. Now, give a proper name to refer to this text box while coding easily.
Example of using TextBox in Userform
We will conduct one of the projects with VBA textText is a worksheet function in excel but it can also be used in VBA while using the range property. It is similar to the worksheet function and it takes the same number of arguments. These arguments are the values which needs to be converted.read more. We will create a data entry user formThe form in Excel simplifies data entry by allowing us to view, add, edit, and delete one record in a horizontal orientation. It is a hidden feature that isn’t accessible through the ribbon tools. This functionality must be added using the quick access toolbar option under the File tab.read more to store the details of the employees.
Step 1: On the UserForm, draw the label.
Step 2: Change the default text of the label to “Employee Name.”
Step 3: In front of the label, draw a text box.
Step 4: Give a proper name to the text box as “EmpNameTextBox.”
Step 5: Draw one more label below the first label and enter the text as “Employee ID.”
Step 6: In front of the second label, draw one more text box and name it “EmpIDTextBox.”
Step 7: Draw one more label and enter the text as “Salary.”
Step 8: Draw one more text box in front of the “Salary” label and name it “SalaryTextBox.”
Step 9: Insert the “Command Button” from the ToolBox.
Step 10: Change the text of the command button to “Submit.”
We have completed the UserForm design part. Next, we need to write the code to store the data entered in this UserForm. As of now, run the UserForm by pressing the F5 key. We should see a UserForm like this.
Step 11: Change the caption of the UserForm in the “Properties” window.
Step 12: Now, double-click on the “Submit” command button. As soon as you double-click, you will see this auto-sub procedure like the one below.
What should happen when you click on the “Submit” button? First, we need to mention the tasks in the VBA code. In this project, we aim to store the data entered in the text box as soon as we click the “Submit” button.
For this, first, create a template like this in the worksheet named “Employees Sheet.”
Step 13: Now, come back to the Visual Basic Editor. Inside the button, click subroutine in VBASUB in VBA is a procedure which contains all the code which automatically gives the statement of end sub and the middle portion is used for coding. Sub statement can be both public and private and the name of the subprocedure is mandatory in VBA.read more first to determine the last used row by using the below code.
Code:
Private Sub CommandButton1_Click() Dim LR As Long LR = Worksheets("Employee Sheet").cell(Rows.Count, 1).End(xlUp).Row + 1 End Sub
Step 14: First, we will store “Employee Name” in the first column. So for this, we need to access the text box named “EmpNameTextBox.”
Code:
Private Sub CommandButton1_Click() Dim LR As Long LR = Worksheets("Employee Sheet").cell(Rows.Count, 1).End(xlUp).Row + 1 Ramge("A" & LR).Value = EmpNameTextBox.Value End Sub
Step 15: We need to store the “Employee ID” in the second column. So, we may obtain this by accessing the text box “EmpIDTextBox.”
Code:
Private Sub CommandButton1_Click() Dim LR As Long LR = Worksheets("Employee Sheet").cell(Rows.Count, 1).End(xlUp).Row + 1 Ramge("A" & LR).Value = EmpNameTextBox.Value Ramge("B" & LR).Value = EmpIDTextBox.Value End Sub
Step 16: At last, we need to store the salary part. For this, we need to access a text box named “SalaryTextBox.”
Code:
Private Sub CommandButton1_Click() Dim LR As Long LR = Worksheets("Employee Sheet").cell(Rows.Count, 1).End(xlUp).Row + 1 Ramge("A" & LR).Value = EmpNameTextBox.Value Ramge("B" & LR).Value = EmpIDTextBox.Value Range("C" & LR).Value = SalaryTextBox.Value End Sub
We have completed the coding part as well. Now, run the code using the F5 key. We should see a UserForm like the one below.
As of now, all the boxes are empty.
Fill in the details first.
Now, click on the “Submit” button. It will store the data on the worksheet.
Like this, you can keep entering the data and press the “Submit” button. It is a simple data entry UserForm with a text box.
Recommended Articles
This article has been a guide to VBA TextBox. Here, we learn how to insert and use textbox control in UserForm through Excel VBA, practical examples, and a downloadable template. Below you can find some useful Excel VBA articles: –
- VBA Close UserForm
- Excel VBA ArrayList
- Insert Row using VBA
- Using Not Equal in VBA
I have inserted a text box in my worksheet, using the menu «Insert/Text Box» at the ribbon of Excel 2007. It has automatically been named as «TextBox 17».
I am trying to set its value using my VBA code, but I can’t figure out the way to do it. I even tried to run a single-line routine just to feed the textbox with some text (like the following and other combinations) but failed.
Sub test()
Sheets(1).Shapes.item(14).Text = "eventually some text"
Sheets(1).Shapes(14).Text = "eventually some text"
Worksheets(1).Shapes(14).Value = "eventually some text"
Sheets(1).Shapes("TextBox 17").Text = "eventually some text"
Sheets(1).Shapes("TextBox 17").ControlFormat.Value = "eventually some text"
Worksheets(1).Shapes(14).TextFrame.TextRange.Text = "eventually some text"
End Sub
While in research about this, I found answers only about activeX textboxes. But as far as I understood, the textbox I have inserted is not of this kind.
Can anybody help?
asked Mar 28, 2015 at 22:00
This seems to be working with no problem:
Sheets(1).Shapes(14).TextFrame.Characters.Text = "xxx"
Fabio Poloni
8,1715 gold badges43 silver badges74 bronze badges
answered Mar 28, 2015 at 22:20
fontanfontan
8610 bronze badges
1
I was able to set the text box contents with
Sub test()
Sheets(1).Shapes.Item(14).TextFrame.Characters.Text = "eventually some text"
End Sub
answered Mar 28, 2015 at 22:21
PeterTPeterT
8,1671 gold badge17 silver badges38 bronze badges
You can put the text in a cell (maybe the one obscured by the text box) and set the text box value to the content of the cell (=$B$7). The cell’s text color can be changed to white to hide it, too.
The drawback is that it’s vulnerable to a user changing it manually.
answered Mar 16 at 18:19
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.
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.
Step 4: In this toolbox select TextBox.
Step 5: Drag this TextBox on the user form.
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.
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.
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.
Step 2: From UserForm Tools, select TextBox and drag it to UserForm.
Step 3: Insert a CommandButton under UserForm in the same way you added TextBox.
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.
Step 5: Double click on the submit button or Right click on it and select View Code.
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
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 #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.
Step 2: Change the name of TextBox under Properties section to “My_Age”.
Step 3: Double click on TextBox or right click on it and select View Code.
You’ll be able to see the initial sub-procedure as below:
Code:
Private Sub My_Age_Change() End Sub
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
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
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
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
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
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:
Now, I try to input an Integer value in it and see whether it actually allows me to input the same or not.
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.
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.
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.
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 –
- VBA IsNumeric
- VBA UCASE
- VBA Close UserForm
- VBA Text
In this Article
- Creating Text Boxes on VBA forms
- Writing Code Behind Forms
- Creating Text Boxes in an Excel Worksheet
This article will demonstrate how to use a Text Box in Excel VBA.
VBA has the ability to create forms that the user can interact with such as Invoice forms, or Contact details. Text Boxes are controls that can be used within these forms, or Text boxes can be created directly within Excel itself.
Creating Text Boxes on VBA forms
To insert a Text Box into a VBA form, we first need to create the form. This is done in the VBE Editor.
First, Open the VBE Editor in Excel.
To insert a new user form into your code, select the UserForm option from the Insert Menu.
A new user form will appear in the Project Explorer and will be shown in the Code Window on the right.
You can rename your form using the Properties box. This should appear below your Project Explorer.
If it is how visible, Press F4 or click View, Properties Window.
Click in the Name property and rename your form.
We can now start populating our form with controls – the text box control is the most popular control along with the label control.
To populate the form with controls, we need to switch on the Toolbox.
In the Menu, select View > Toolbox.
To create a Text Box on your form, select the Text Box control in the Toolbox.
Drag a box shape on the form with your mouse, holding the left button down, and then release the mouse button.
As this is the first Text Box we are creating, it will be named TextBox1. As with the form, you can use the Properties window to rename the text box.
You might need to also create a label for your text box on the form. This is done with a label control. You drag on the form in the same way as you do for a Text Box, and then you can type the required text within the label control eg: First Name as shown below.
To use the form within VBA Code, we would need to add a command button to the form. This is done by selecting the Command Button control in the Toolbox and dragging the button onto your form.
You can then continue to create your form using textboxes, labels and command buttons, renaming them as appropriate.
Writing Code Behind Forms
Once we have created our form, we need to write VBA code to insert the information in our form onto our Excel worksheet. This code is called CBF (Code Behind Forms).
In the the VBE, double-click on the command button to go to the code behind the button.
A sub-routine for the click event for the button will be created. We can type our VBA code in this routine. For example:
Private Sub cmdOK_Click()
Range("A1") = Me.txtFirstName
Range("A2") = Me.txtSurname
Range("A3") = Me.txtCellPhone
Unload Me
End Sub
This routine will put the details typed in the text boxes into Excel, and then close the form.
Creating Text Boxes in an Excel Worksheet
It is also possible to create text boxes within the Excel spreadsheet. In order to do this, you need to have your Developer Ribbon switched on.
Note: If you don’t see the Developer Ribbon, you’ll need to enable it.
In the Ribbon, select Developer > Insert > ActiveX Controls > TextBox.
Click and drag in your Excel worksheet to draw the text box in the worksheet at the desired position. Release the mouse button to complete drawing the text box.
The text box will be in Design Mode. While in this mode, we can size the box, and select the Properties of the text box.
Click on the Properties button to show the Property Window for the text box. In this window, we can change a variety of properties of the text box such as the name of the box, the color of the text, background or border, the border style and the font used for the text in the text box for example.
To use the text box direct in Excel as we have used it in the VBA form above, we need a way to return the data typed into the text box to the Excel sheet. This can be done by adding a ActiveX command button to the worksheet, and using the click_event of this command button to return the information in the text box to the Excel sheet.
In the Ribbon, select Developer > Insert > ActiveX Controls > Command Button to add a command button to your Excel sheet. Switch on the Properties window and change the name of the button, the caption of the button and the Accelerator of the button as shown in the image below.
Double-click on the button to go to the VBA click event of the button and type the following code:
Private Sub cmdOK_Click()
Range("A1") = Me.txtFirstName
End Sub
Switch back to the Excel worksheet, make sure Design Mode is switched off and then type in the created text box.
Click the command button to return the text to Excel.
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
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.
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.
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:
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.
- Что такое 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. Вы также можете просмотреть наши другие предлагаемые статьи —
- Как использовать функцию VBA IsNumeric?
- Создание поля со списком в Excel
- Вставьте флажок в Excel
- Функция VBA UCASE в Excel
- Как закрыть UserForm в VBA?