In the previous article, we learned about the MsgBox Function. MsgBox Function is helpful for output while the InputBox function in VBA is useful for input. So let us start learning.
Input Box in VBA – InputBox Function
An Input Box is a dialog box that is used to input a value. We use the InputBox Function to show an input box to take input from the user. An input box comes with two buttons on it and a text box. If the user clicks on the Ok button, the InputBox function returns the input value entered in the text box to the VBA code. The second is the Cancel button. When a user clicks on the Cancel button, the function returns an empty text string (“”).
We can also specify a default value for the input variable. When user closes the Input Box without giving any input, the default value is returned.
Syntax – InputBox Function
<input_varable> contains the value returned by the InputBox function. The parameters in the square brackets are optional. Only the Prompt is Compulsory to call the InputBox function.
Below is the explanation of all the parameters required by the InputBox function.
- Prompt − This is the message that is shown in the Input Box which directs user about the input to be given. The maximum length is 1024 characters.
- [Title] − This is the title of the Input Box at the top left corner. If the Title is not specified, we see the Application name.
- [Default] − This is the default value of the input variable.
- [XPos] − This is the distance of Input Box from the left side of the screen on x axis in pixels.
- [YPos] − This is the distance of Input Box from the top of screen on the y axis in pixels.
- [HelpFile] − An optional parameter. A String expression that identifies the helpfile to be used to provide context-sensitive Help for the dialog box.
- [Context] − An optional parameter. If context is provided, helpfile must also be provided.
Examples of Input Box Function in VBA
In this section of the blog, we would do some examples to implement the InputBox Function to take user input.
Example 1 – Get Length and Breadth to Get Area of Rectangle
In this example, we would input the value of length variable l and breadth variable b to get the area of rectangle in variable a.
Sub Area() 'declaring l,b and a Dim l As Integer, b As Integer, a As Integer 'input the length l l = InputBox("Enter the Length of Rectange:=") 'input the breadth b b = InputBox("Enter the breadth of Rectangle=") 'getting area a a = l * b 'printing the value of area MsgBox ("Area of Rectangle is:= " & a) End Sub
Run this Sub Procedure to see how the input box appears.
Example 2 – Login by Inputting Password, Setting a Default value
When the User Clicks on the Ok button in the Input Box, without giving any input, then it returns an empty text string. If the input variable is not of string type, then it would lead to an error.
We can prevent this by adding a default value of the input variable to be returned by Input Box.
A default value appears in the Text Box like a saved value. Moreover, the user can change if he/she wants to.
Sub login() 'creating a login form Dim roll As Integer, password As String 'input the roll number, default value is 11039 roll = InputBox("Enter your roll number:= ", "LogIn", 11039#) 'input the password, default value is 00000000 password = InputBox("Enter Password:= ", "LogIn", "00000000") 'checking if the password is correct (equal to 12345678) If password = "12345678" Then x = MsgBox("Welcome", vbInformation) 'correct Else x = MsgBox("Incorrect Password", vbCritical) 'incorrect End If End Sub
You can see that we also specify the Title as “LogIn” in the InputBox parameter. The input variables are roll and then password.
When we run the procedure, the roll number is 11039 by default. We enter the password as 12345678 and it logs in. However, the default password 00000000 is incorrect so it shows an incorrect password message.
This brings us to end.
Thank you for reading.❤