Skip to Content
Course content

7.1 Using InputBox and MsgBox.

In VBA, two essential functions for interacting with users are InputBox and MsgBox. These functions allow you to gather user input and display messages within your code. Mastering their use enhances the user experience and provides greater control over how data is handled in your VBA applications.

1. InputBox Function

The InputBox function is used to prompt the user to enter some text or data. It displays a dialog box where the user can type input, and the result can be stored in a variable.

Syntax:

InputBox(Prompt, [Title], [Default], [X], [Y], [HelpFile], [Context])
  • Prompt: The message or question displayed in the dialog box.
  • Title (optional): The text that appears in the title bar of the dialog box.
  • Default (optional): The default text pre-filled in the text box (if any).
  • X (optional): The horizontal position of the dialog box on the screen.
  • Y (optional): The vertical position of the dialog box on the screen.
  • HelpFile and Context (optional): Used for linking to help files or context-sensitive help (rarely used).

Example Usage:

Sub GetUserName()
    Dim userName As String
    userName = InputBox("Please enter your name:", "User Name Input")
    MsgBox "Hello, " & userName & "!", vbInformation, "Greeting"
End Sub

In this example:

  • An InputBox prompts the user to enter their name.
  • The value entered is stored in the userName variable.
  • A MsgBox displays a personalized greeting using the entered name.

2. MsgBox Function

The MsgBox function is used to display messages or information to the user. It is typically used for alerts, confirmations, and notifications. You can also use it to display error messages or important information with different button options and icon styles.

Syntax:

MsgBox(Prompt, [Buttons], [Title], [HelpFile], [Context])
  • Prompt: The message to be displayed in the dialog box.
  • Buttons (optional): Specifies the type of buttons to display (e.g., OK, Yes/No, Retry/Cancel).
  • Title (optional): The title of the dialog box.
  • HelpFile and Context (optional): Used for linking to help files (rarely used).

Buttons Argument Options:

  • vbOKOnly: Displays the OK button only (default).
  • vbYesNo: Displays Yes and No buttons.
  • vbAbortRetryIgnore: Displays Abort, Retry, and Ignore buttons.
  • vbCritical: Displays a critical error icon.
  • vbExclamation: Displays an exclamation icon.
  • vbInformation: Displays an information icon.
  • vbQuestion: Displays a question mark icon.

Example Usage:

Sub DisplayMessage()
    MsgBox "The process is complete!", vbInformation, "Process Status"
End Sub

In this example:

  • The MsgBox displays an informational message about the completion of a process with the "OK" button and an information icon.

3. Using MsgBox with Buttons and Handling User Response

The MsgBox function can also return a value depending on the button clicked by the user. This is useful for decision-making in your VBA programs.

Syntax for Handling Responses:

Dim response As Integer
response = MsgBox("Do you want to continue?", vbYesNo + vbQuestion, "Confirmation")
If response = vbYes Then
    MsgBox "You clicked Yes."
Else
    MsgBox "You clicked No."
End If

In this example:

  • The MsgBox displays a message with Yes and No buttons.
  • The user’s response is captured in the response variable.
  • An If statement checks whether the user clicked Yes (vbYes) or No (vbNo) and then displays an appropriate message.

4. Combining InputBox and MsgBox

You can combine InputBox and MsgBox to guide the user through a process, asking for input and providing feedback.

Example: Collecting User Input and Providing Confirmation:

Sub CollectUserData()
    Dim userInput As String
    userInput = InputBox("Please enter your age:", "Age Input")
    
    If userInput <> "" Then
        MsgBox "Thank you! You entered " & userInput & " years.", vbInformation, "Data Received"
    Else
        MsgBox "You did not enter any data.", vbExclamation, "No Input"
    End If
End Sub

In this example:

  • The InputBox prompts the user for their age.
  • If the user provides input, a confirmation message is shown with the entered data.
  • If no input is provided, a warning message is shown.

5. Summary of Key Points

Function Purpose Example Usage
InputBox Used to collect data or information from users. Dim userName As String userName = InputBox("Enter your name")
MsgBox Displays a message or prompt to the user. MsgBox "Process Complete", vbInformation, "Status"
MsgBox Buttons Allows user interaction with Yes/No, OK/Cancel, etc. MsgBox "Proceed?", vbYesNo + vbQuestion, "Confirmation"

By using InputBox and MsgBox, you can enhance the interactivity of your VBA programs, making them more user-friendly and responsive.

Commenting is not enabled on this course.