Excel VBA MsgBox: Step-by-Step Guide And 19 Examples
Có thể bạn quan tâm
In this VBA Tutorial, you learn how to create message boxes and specify their most important characteristics, such as the following:
- How to specify the message displayed in the message box.
- How to customize or specify the buttons displayed by the message box.
- How to work with the value returned by the MsgBox function, and assign this value to a variable.
- How to specify the icon style used by the message box.
- How to specify the default button of in the message box.
- How to specify the modality of the message box.
This Excel VBA MsgBox Tutorial is accompanied by an Excel workbook containing the macros I use in the examples below. You can get immediate access to this example workbook by clicking the button below.
Use the following Table of Contents to navigate to the section that interests you.
Related VBA and Macro Tutorials
The following VBA and Macro Tutorials may help you better understand and implement the contents below:
- General VBA constructs and structures:
- Learn how to start working with macros here.
- Learn about essential VBA terms here.
- Learn how to enable or disable macros here.
- Learn how to work with the VBE here.
- Learn how to create and work with Sub procedures here.
- Learn how to declare and work with variables here.
- Learn about VBA data types here.
- Learn how to work with functions in VBA here.
- Practical VBA applications and macro examples:
- Learn how to create UserForms here.
You can find additional VBA and Macro Tutorials in the Archives.
#1: Create MsgBox
VBA code to create MsgBox
To create a basic message box with VBA, use a statement with the following structure:
MsgBox Prompt:=PromptStringProcess to create MsgBox
To create a basic message box with VBA, use the MsgBox function (MsgBox …).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a basic message box using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
Macro example to create MsgBox
The following macro example creates a basic message box with the message “Create Excel VBA MsgBox”.
Sub createMsgBox() 'source: https://powerspreadsheets.com/ 'creates a message box 'for further information: https://powerspreadsheets.com/excel-vba-msgbox/ 'create a message box MsgBox Prompt:="Create Excel VBA MsgBox" End SubEffects of executing macro example to create MsgBox
The following image illustrates the results of executing the macro example.
#2: Create MsgBox with multiple lines (new line or line break)
VBA code to create MsgBox with multiple lines (new line or line break)
To create a message box with multiple lines (by including a new line or using line breaks) using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString1 & NewLineCharacter & PromptString2 & ... & NewLineCharacter & PromptString#Process to create MsgBox with multiple lines (new line or line break)
To create a message box with multiple lines (by including a new line or using line breaks) using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify the message displayed in the message box as an appropriately concatenated (with the & character) combination of:
- Strings (PromptString1, PromptString2, …, PromptString#); and
- Characters that create a new line or line break (NewLineCharacter).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with multiple lines (by including a new line or using line breaks) using this statement structure:
- The displayed message is that specified by the Prompt argument.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString1 & NewLineCharacter & PromptString2 & … & NewLineCharacter & PromptString#.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box.When you create a message box with multiple lines (by including a new line or using line breaks), you build the string expression assigned to Prompt (PromptString1 & NewLineCharacter & PromptString2 & … & NewLineCharacter & PromptString#) by concatenating as many strings (PromptString1, PromptString2, …, PromptString#) and newline characters (NewLineCharacter) as required.The maximum length of the string expression assigned to prompt is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters you include.If you explicitly declare a variable to represent this string expression, you can usually work with the String data type.
- Item: PromptString1, PromptString2, …, PromptString#.
- VBA construct: Strings expressions.
- Description: PromptStrings are the strings (excluding the new line characters) that determine the message displayed in the message box.If you explicitly declare variables to represent the different PromptStrings, you can usually work with the String data type.
- Item: &.
- VBA construct: Concatenation (&) operator.
- Description: The & operator carries out string concatenation. Therefore, & concatenates the different strings (PromptString1, PromptString2, …, PromptString#) and new line characters (NewLineCharacter) you use to specify the string expression assigned to the Prompt argument.
- Item: NewLineCharacter.
- VBA construct: A character or character combination returning 1 of the following:
- Carriage return.
- Linefeed.
- Carriage return linefeed combination.
- New line (which is platform specific).
- Description: Specify NewLineCharacter using any of the constants or character codes (with the Chr function) listed below.
Constant Equivalent Chr function General Description vbLf Chr(10) Linefeed vbCr Chr(13) Carriage return vbCrLf Chr(13) & Chr(10) Carriage return linefeed combination vbNewLine Chr(13) & Chr(10) in Excel for Windows or Chr(13) in Excel for Mac New line character, which is platform specific
- VBA construct: A character or character combination returning 1 of the following:
Macro example to create MsgBox with multiple lines (new line or line break)
The following macro example creates a message box with a message displayed in multiple lines by adding a new line as follows:
- Line #1: “Create Excel VBA MsgBox”.
- Line #2: “And add a new line”.
Effects of executing macro example to create MsgBox with multiple lines (new line or line break)
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box contains multiple lines.
#3: Create MsgBox with title
VBA code to create MsgBox with title
To create a message box with title using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Title:=TitleStringProcess to create MsgBox with title
To create a message box with title using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify the message displayed in the message box (Prompt:=PromptString).
- Specify the message box title (Title:=TitleString).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with title using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Title:=TitleString.
- VBA construct: Title argument of the MsgBox function and string expression.
- Description: Use the Title argument of the MsgBox function to specify the title displayed in the title bar of the message box. If you omit the Title argument, the title displayed in the title bar of the message box is “Microsoft Excel”.You generally specify TitleString as a string expression. If you explicitly declare a variable to represent TitleString, you can usually work with the String data type.
Macro example to create MsgBox with title
The following macro example creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- The title “Add title to MsgBox.
Effects of executing macro example to create MsgBox with title
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box contains a custom title (Add title to MsgBox).
#4: Create MsgBox that returns value based on user input and assigns value to a variable
VBA code to create MsgBox that returns value based on user input and assigns value to a variable
To create a message box that:
- Returns a value based on the user's input; and
- Assigns that value to a variable;
with VBA, use a statement with the following structure:
Variable = MsgBox(Prompt:=PromptString, Buttons:=ButtonsExpression)Process to create MsgBox that returns value based on user input and assigns value to a variable
To create a message box that:
- Returns a value based on the user's input; and
- Assigns that value to a variable;
with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify the buttons to be displayed in the message box (Buttons:=ButtonsExpression).
- Assign the value returned by the MsgBox function to a variable (Variable = MsgBox(…)).
VBA statement explanation
- Item: Variable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare Variable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to Variable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box that returns a value based on user input (and assigns the value to a variable) using this statement structure:
- The displayed message is PromptString.
- The message box contains the buttons specified by ButtonsExpression. For purposes of working with the main custom button layouts, please refer to the appropriate sections of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=ButtonsExpression.
- VBA construct: Buttons argument of the MsgBox function.
- Description: Use the Buttons argument of the MsgBox function to specify the following:
- Number and type of buttons displayed in the message box.
- Icon style for the message box.
- Default button in the message box.
- Modality of the message box.
For these purposes, you can generally specify ButtonsExpression as a sum of the following 4 groups of values or built-in constants:
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
Built-in constant Value Description vbOKOnly 0 Message box with only OK button vbOKCancel 1 Message box with OK and Cancel buttons vbAbortRetryIgnore 2 Message box with Abort, Retry and Ignore buttons vbYesNoCancel 3 Message box with Yes, No and Cancel buttons vbYesNo 4 Message box with Yes and No buttons vbRetryCancel 5 Message box with Retry and Cancel buttons For purposes of working with these different custom button layouts, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the icon style of the message box, as follows:
Built-in constant Value Description vbCritical 16 Message box with Critical Message icon vbQuestion 32 Message box with Warning Query icon vbExclamation 48 Message box with Warning Message icon vbInformation 64 Message box with Information Message icon For purposes of working with these different icon styles, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the default button in the message box, as follows:
Built-in constant Value Description vbDefaultButton1 0 Message box where first button is default button vbDefaultButton2 256 Message box where second button is default button vbDefaultButton3 512 Message box where third button is default button vbDefaultButton4 768 Message box where fourth button is default button For purposes of working with these different custom default button options, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the modality of the message box, as follows:
Built-in constant Value Description vbApplicationModal 0 Application modal message box vbSystemModal 4096 System modal message box For purposes of working with this different modality options, please refer to the appropriate sections of this Tutorial.
When specifying ButtonsExpression:
- Specify ButtonsExpression as a sum of the applicable values or built-in constants.
- Omit the values from the groups you don't specify.
- Use a maximum of 1 value from each of these 4 groups.
- In addition to the values and built-in constants I list above, the Buttons argument accepts the following 4 settings:
Built-in constant Value Description vbMsgBoxHelpButton 16384 Message box with an additional Help button. The MsgBox function also accepts a (optional) helpfile and context arguments that specify the applicable Help file and Help context number.
Clicking on the Help button results in the applicable help being provided. The MsgBox function only returns a value when the user clicks 1 of the other buttons in the message box.
vbMsgBoxSetForeground 65536 Message box is the foreground window vbMsgBoxRight 524288 Text within the message box is aligned to the right vbMsgBoxRtlReading 1048576 Text within the message box is displayed as right-to-left reading on Hebrew and Arabic systems
The default value of the Buttons argument is 0. Therefore, if you omit specifying the Buttons argument, the result is an Application modal message box with a single button (OK), which is also the default button, and no special icon style.
Macro example to create MsgBox that returns value based on user input and assigns value to a variable
The following macro example does the following:
- Creates a message box that returns a value based on the user's input.
- Assigns this value to a variable (myVariable = MsgBox(…)).
- Creates a second message box that displays the value held by variable.
The message box has the following characteristics:
- Displays the message “Create Excel VBA MsgBox”.
- Has 2 buttons: Yes and No (vbYesNo). The second button (vbDefaultButton2) is the default.
- Displays an Information Message icon (vbInformation).
- Is System modal (vbSystemModal).
Effects of executing macro example to create MsgBox that returns value based on user input and assigns value to a variable
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box with the value returned by the MsgBox function and held by the variable.
#5: Create MsgBox with OK button
VBA code to create MsgBox with OK button
To create a message box with an OK button using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbOKOnlyProcess to create MsgBox with OK button
To create a message box with an OK button using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should display a single(OK) button (Buttons:=vbOKOnly).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with OK button using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbOKOnly.
- VBA construct: Buttons argument of the MsgBox function and vbOKOnly built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbOKOnly (or 0) to explicitly specify that the message box has a single OK button.The default value of the Buttons argument is, anyway, 0. Therefore, if you omit specifying the Buttons argument, the result is also an Application modal message box with a single button (OK), which is also the default button, and no special icon style.
Macro example to create MsgBox with OK button
The following macro example creates a message box with the message “Create Excel VBA MsgBox” and a single (OK) button (vbOKOnly).
Sub MsgBoxCustomButtonsOk() 'source: https://powerspreadsheets.com/ 'creates a message box with an OK button 'for further information: https://powerspreadsheets.com/excel-vba-msgbox/ 'create message box with OK button MsgBox Prompt:="Create Excel VBA MsgBox", Buttons:=vbOKOnly End SubEffects of executing macro example to create MsgBox with OK button
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box contains a single (OK) button.
#6: Create MsgBox with OK and Cancel buttons
VBA code to create MsgBox with OK and Cancel buttons
To create a message box with OK and Cancel buttons using VBA, use a statement with the following structure:
OkCancelVariable = MsgBox(Prompt:=PromptString, Buttons:=vbOKCancel)Process to create MsgBox with OK and Cancel buttons
To create a message box with OK and Cancel buttons using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify that the message box should display OK and Cancel buttons (Buttons:=vbOKCancel).
- Assign the value returned by the MsgBox function to a variable (OkCancelVariable = MsgBox(…)).
VBA statement explanation
- Item: OkCancelVariable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare OkCancelVariable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to OkCancelVariable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with OK and Cancel buttons using this statement structure:
- The displayed message is PromptString.
- The message box contains 2 buttons: OK and Cancel.
- The value returned by the MsgBox function is 1 of the following:
Button clicked by user Built-in constant Value OK vbOK 1 Cancel vbCancel 2
If the user presses the Esc key, the MsgBox function returns vbCancel (or 2). In other words, pressing the Esc key is the equivalent to clicking the Cancel button.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbOKCancel.
- VBA construct: Buttons argument of the MsgBox function and vbOKCancel built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbOKCancel (or 1) to specify that the message box has OK and Cancel buttons.
Macro example to create MsgBox with OK and Cancel buttons
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- OK and Cancel buttons (vbOKCancel).
- Assigns the value returned by the MsgBox function to a variable (myOkCancelMsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the OK button (If myOkCancelMsgBoxValue = vbOK), the macro creates a message box with the message “You clicked OK on the message box”.
- If the user clicks the Cancel button (ElseIf myOkCancelMsgBoxValue = vbCancel), the macro creates a message box with the message “You clicked Cancel on the message box”.
Effects of executing macro example to create MsgBox with OK and Cancel buttons
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box whose message depends on the clicked button (OK or Cancel).
#7: Create MsgBox with Yes and No buttons
VBA code to create MsgBox with Yes and No buttons
To create a message box with Yes and No buttons using VBA, use a statement with the following structure:
YesNoVariable = MsgBox(Prompt:=PromptString, Buttons:=vbYesNo)Process to create MsgBox with Yes and No buttons
To create a message box with Yes and No buttons using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify that the message box should display Yes and No buttons (Buttons:=vbYesNo).
- Assign the value returned by the MsgBox function to a variable (YesNoVariable = MsgBox(…)).
VBA statement explanation
- Item: YesNoVariable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare YesNoVariable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to YesNoVariable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with Yes and No buttons using this statement structure:
- The displayed message is PromptString.
- The message box contains 2 buttons: Yes and No.
- The value returned by the MsgBox function is 1 of the following:
Button clicked by user Built-in constant Value Yes vbYes 6 No vbNo 7
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbYesNo.
- VBA construct: Buttons argument of the MsgBox function and vbYesNo built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbYesNo (or 4) to specify that the message box has Yes and No buttons.
Macro example to create MsgBox with Yes and No buttons
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Yes and No buttons (vbYesNo).
- Assigns the value returned by the MsgBox function to a variable (myYesNoMsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Yes button (If myYesNoMsgBoxValue = vbYes), the macro creates a message box with the message “You clicked Yes on the message box”.
- If the user clicks the No button (ElseIf myYesNoMsgBoxValue = vbNo), the macro creates a message box with the message “You clicked No on the message box”.
Effects of executing macro example to create MsgBox with Yes and No buttons
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box whose message depends on the clicked button (Yes or No).
#8: Create MsgBox with Yes, No and Cancel buttons
VBA code to create MsgBox with Yes, No and Cancel buttons
To create a message box with Yes, No and Cancel buttons using VBA, use a statement with the following structure:
YesNoCancelVariable = MsgBox(Prompt:=PromptString, Buttons:=vbYesNoCancel)Process to create MsgBox with Yes, No and Cancel buttons
To create a message box with Yes, No and Cancel buttons using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify that the message box should display Yes, No and Cancel buttons (Buttons:=vbYesNoCancel).
- Assign the value returned by the MsgBox function to a variable (YesNoCancelVariable = MsgBox(…)).
VBA statement explanation
- Item: YesNoCancelVariable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare YesNoCancelVariable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to YesNoCancelVariable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with Yes, No and Cancel buttons using this statement structure:
- The displayed message is PromptString.
- The message box contains 3 buttons: Yes, No and Cancel.
- The value returned by the MsgBox function is 1 of the following:
Button clicked by user Built-in constant Value Cancel vbCancel 2 Yes vbYes 6 No vbNo 7 If the user presses the Esc key, the MsgBox function returns vbCancel (or 2). In other words, pressing the Esc key is the equivalent to clicking the Cancel button.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbYesNoCancel.
- VBA construct: Buttons argument of the MsgBox function and vbYesNoCancel built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbYesNoCancel (or 3) to specify that the message box has Yes, No and Cancel buttons.
Macro example to create MsgBox with Yes, No and Cancel buttons
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Yes, No and Cancel buttons (vbYesNoCancel).
- Assigns the value returned by the MsgBox function to a variable (myYesNoCancelMsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Yes button (Case vbYes), the macro creates a message box with the message “You clicked Yes on the message box”.
- If the user clicks the No button (Case vbNo), the macro creates a message box with the message “You clicked No on the message box”.
- If the user clicks the Cancel button (Case vbCancel), the macro creates a message box with the message “You clicked Cancel on the message box”.
Effects of executing macro example to create MsgBox with Yes, No and Cancel buttons
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box whose message depends on the clicked button (Yes, No or Cancel).
#9: Create MsgBox with Retry and Cancel buttons
VBA code to create MsgBox with Retry and Cancel buttons
To create a message box with Retry and Cancel buttons using VBA, use a statement with the following structure:
RetryCancelVariable = MsgBox(Prompt:=PromptString, Buttons:=vbRetryCancel)Process to create MsgBox with Retry and Cancel buttons
To create a message box with Retry and Cancel buttons using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify that the message box should display Retry and Cancel buttons (Buttons:=vbRetryCancel).
- Assign the value returned by the MsgBox function to a variable (RetryCancelVariable = MsgBox(…)).
VBA statement explanation
- Item: RetryCancelVariable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare RetryCancelVariable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to RetryCancelVariable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with Retry and Cancel buttons using this statement structure:
- The displayed message is PromptString.
- The message box contains 2 buttons: Retry and Cancel.
- The value returned by the MsgBox function is 1 of the following:
Button clicked by user Built-in constant Value Cancel vbCancel 2 Retry vbRetry 4
If the user presses the Esc key, the MsgBox function returns vbCancel (or 2). In other words, pressing the Esc key is the equivalent to clicking the Cancel button.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbRetryCancel.
- VBA construct: Buttons argument of the MsgBox function and vbRetryCancel built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbRetryCancel (or 5) to specify that the message box has Retry and Cancel buttons.
Macro example to create MsgBox with Retry and Cancel buttons
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Retry and Cancel buttons (vbRetryCancel).
- Assigns the value returned by the MsgBox function to a variable (myRetryCancelMsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Retry button (If myRetryCancelMsgBoxValue = vbRetry), the macro creates a message box with the message “You clicked Retry on the message box”.
- If the user clicks the Cancel button (ElseIf myRetryCancelMsgBoxValue = vbCancel), the macro creates a message box with the message “You clicked Cancel on the message box”.
Effects of executing macro example to create MsgBox with Retry and Cancel buttons
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box whose message depends on the clicked button (Retry or Cancel).
#10: Create MsgBox with Abort, Retry and Ignore buttons
VBA code to create MsgBox with Abort, Retry and Ignore buttons
To create a message box with Abort, Retry and Ignore buttons using VBA, use a statement with the following structure:
AbortRetryIgnoreVariable = MsgBox(Prompt:=PromptString, Buttons:=vbAbortRetryIgnore)Process to create MsgBox with Abort, Retry and Ignore buttons
To create a message box with Abort, Retry and Ignore buttons using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify that the message box should display Abort, Retry and Ignore buttons (Buttons:=vbAbortRetryIgnore).
- Assign the value returned by the MsgBox function to a variable (AbortRetryIgnoreVariable = MsgBox(…)).
VBA statement explanation
- Item: AbortRetryIgnoreVariable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare AbortRetryIgnoreVariable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to AbortRetryIgnoreVariable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with Abort, Retry and Ignore buttons using this statement structure:
- The displayed message is PromptString.
- The message box contains 3 buttons: Abort, Retry and Ignore.
- The value returned by the MsgBox function is 1 of the following:
Button clicked by user Built-in constant Value Abort vbAbort 3 Retry vbRetry 4 Ignore vbIgnore 5
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbAbortRetryIgnore.
- VBA construct: Buttons argument of the MsgBox function and vbAbortRetryIgnore built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbAbortRetryIgnore (or 2) to specify that the message box has Abort, Retry and Ignore buttons.
Macro example to create MsgBox with Abort, Retry and Ignore buttons
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Abort, Retry and Ignore buttons (vbAbortRetryIgnore).
- Assigns the value returned by the MsgBox function to a variable (myAbortRetryIgnoreMsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Abort button (Case vbAbort), the macro creates a message box with the message “You clicked Abort on the message box”.
- If the user clicks the Retry button (Case vbRetry), the macro creates a message box with the message “You clicked Retry on the message box”.
- If the user clicks the Ignore button (Case vbIgnore), the macro creates a message box with the message “You clicked Ignore on the message box”.
Effects of executing macro example to create MsgBox with Abort, Retry and Ignore buttons
The following image illustrates the results of executing the macro example. Notice that, as expected, the macro displays a second message box whose message depends on the clicked button (Abort, Retry or Ignore).
#11: Create MsgBox with critical style
VBA code to create MsgBox with critical style
To create a message box with the critical icon style using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbCriticalProcess to create MsgBox with critical style
To create a message box with the critical icon style using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should use the critical icon style (Buttons:=vbCritical).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with a critical icon style using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbCritical.
- VBA construct: Buttons argument of the MsgBox function and vbCritical built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbCritical (or 16) to specify that the message box uses the critical icon style and, therefore, displays a Critical Message icon.
Macro example to create MsgBox with critical style
The following macro example creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- The critical message icon style (vbCritical), which results in the Critical Message icon being displayed.
Effects of executing macro example to create MsgBox with critical style
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box uses the critical message icon style.
#12: Create MsgBox with question style
VBA code to create MsgBox with question style
To create a message box with the question icon style using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbQuestionProcess to create MsgBox with question style
To create a message box with the question icon style using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should use the question icon style (Buttons:=vbQuestion).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with the question icon style using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbQuestion.
- VBA construct: Buttons argument of the MsgBox function and vbQuestion built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbQuestion (or 32) to specify that the message box uses the question icon style and, therefore, displays a Warning Query icon.
Macro example to create MsgBox with question style
The following macro example creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- The question icon style (vbQuestion), which results in the Warning Query icon being displayed.
Effects of executing macro example to create MsgBox with question style
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box uses the question icon style.
#13: Create MsgBox with exclamation style
VBA code to create MsgBox with exclamation style
To create a message box with the exclamation icon style using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbExclamationProcess to create MsgBox with exclamation style
To create a message box with the exclamation icon style using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should use the exclamation icon style (Buttons:=vbExclamation).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with an exclamation icon style using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbExclamation.
- VBA construct: Buttons argument of the MsgBox function and vbExclamation built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbExclamation (or 48) to specify that the message box uses the exclamation icon style and, therefore, displays a Warning Message icon.
Macro example to create MsgBox with exclamation style
The following macro example creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- The exclamation icon style (vbExclamation), which results in the Warning Message icon being displayed.
Effects of executing macro example to create MsgBox with exclamation style
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box uses the exclamation icon style.
#14: Create MsgBox with information style
VBA code to create MsgBox with information style
To create a message box with the information icon style using VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbInformationProcess to create MsgBox with information style
To create a message box with the information icon style using VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should use the information icon style (Buttons:=vbInformation).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box with an information icon style using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbInformation.
- VBA construct: Buttons argument of the MsgBox function and vbInformation built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbInformation (or 64) to specify that the message box uses the information icon style and, therefore, displays an Information Message icon.
Macro example to create MsgBox with information style
The following macro example creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- The information icon style (vbInformation), which results in the Information Message icon being displayed.
Effects of executing macro example to create MsgBox with information style
The following image illustrates the results of executing the macro example. Notice that, as expected, the message box uses the information message icon style.
#15: Create MsgBox where first button is default
VBA code to create MsgBox where first button is default
To create a message box where the first button is the default with VBA, use a statement with the following structure:
CustomButtons1Variable = MsgBox(Prompt:=PromptString, Buttons:=ButtonsExpression1 + vbDefaultButton1)Process to create MsgBox where first button is default
To create a message box where the first button is the default with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify the buttons to be displayed in the message box and, explicitly, specify that the first button is the default one (Buttons:=ButtonsExpression1 + vbDefaultButton1).
- Assign the value returned by the MsgBox function to a variable (CustomButtons1Variable = MsgBox(…)).
VBA statement explanation
- Item: CustomButtons1Variable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare CustomButtons1Variable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to CustomButtons1Variable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box where the first button is the default using this statement structure:
- The displayed message is PromptString.
- The message box contains the buttons specified by ButtonsExpression1. For purposes of working with the main custom button layouts, please refer to the appropriate sections of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=ButtonsExpression1 + vbDefaultButton1.
- VBA construct: Buttons argument of the MsgBox function.
- Description: Use the Buttons argument of the MsgBox function to specify the following:
- Number and type of buttons displayed in the message box.
- Icon style for the message box.
- That the first button in the message box is the default.
- Modality of the message box.
- Item: ButtonsExpression1.
- VBA construct: Numeric expression partially specifying the value assigned to the Buttons argument.
- Description: Specify ButtonsExpression1 as a sum of the following 3 groups of values or built-in constants:
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
Built-in constant Value Description vbOKOnly 0 Message box with only OK button vbOKCancel 1 Message box with OK and Cancel buttons vbAbortRetryIgnore 2 Message box with Abort, Retry and Ignore buttons vbYesNoCancel 3 Message box with Yes, No and Cancel buttons vbYesNo 4 Message box with Yes and No buttons vbRetryCancel 5 Message box with Retry and Cancel buttons For purposes of working with these different custom button layouts, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the icon style of the message box, as follows:
Built-in constant Value Description vbCritical 16 Message box with Critical Message icon vbQuestion 32 Message box with Warning Query icon vbExclamation 48 Message box with Warning Message icon vbInformation 64 Message box with Information Message icon For purposes of working with these different icon styles, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the modality of the message box, as follows:
Built-in constant Value Description vbApplicationModal 0 Application modal message box vbSystemModal 4096 System modal message box For purposes of working with this different modality options, please refer to the appropriate sections of this Tutorial.
When specifying ButtonsExpression1:
- Specify ButtonsExpression1 as a sum of the applicable values or built-in constants.
- Omit the values from the groups you don't specify.
- Use a maximum of 1 value from each of these 3 groups.
- In addition to the values and built-in constants I list above, the Buttons argument accepts the following 4 settings:
Built-in constant Value Description vbMsgBoxHelpButton 16384 Message box with an additional Help button. The MsgBox function also accepts a (optional) helpfile and context arguments that specify the applicable Help file and Help context number.
Clicking on the Help button results in the applicable help being provided. The MsgBox function only returns a value when the user clicks 1 of the other buttons in the message box.
vbMsgBoxSetForeground 65536 Message box is the foreground window vbMsgBoxRight 524288 Text within the message box is aligned to the right vbMsgBoxRtlReading 1048576 Text within the message box is displayed as right-to-left reading on Hebrew and Arabic systems
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
- Item: vbDefaultButton1.
- VBA construct: vbDefaultButton1 built-in constant.
- Description: Include vbDefaultButton1 (or 0) in the numeric expression assigned to the Buttons argument to specify that the first button of the message box is the default button.The default value of the Buttons argument is, anyway, 0. Therefore, if you omit specifying the Buttons argument, the result is an Application modal message box with a single button (OK), which is also the default button, and no special icon style.
Macro example to create MsgBox where first button is default
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Yes and No buttons (vbYesNo). The first button (vbDefaultButton1) is explicitly set as the default.
- Assigns the value returned by the MsgBox function to a variable (myCustomButtonsDefault1MsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Yes button (If myCustomButtonsDefault1MsgBoxValue = vbYes), the macro creates a message box with the message “You clicked Yes on the message box”.
- If the user clicks the No button (ElseIf myCustomButtonsDefault1MsgBoxValue = vbNo), the macro creates a message box with the message “You clicked No on the message box”.
Effects of executing macro example to create MsgBox where first button is default
The following image illustrates the results of executing the macro example. Notice that, as expected, the first button in the message box is the default.
#16: Create MsgBox where second button is default
VBA code to create MsgBox where second button is default
To create a message box where the second button is the default with VBA, use a statement with the following structure:
CustomButtons2Variable = MsgBox(Prompt:=PromptString, Buttons:=ButtonsExpression1 + vbDefaultButton2)Process to create MsgBox where second button is default
To create a message box where the second button is the default with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify the buttons to be displayed in the message box and, explicitly, specify that the second button is the default one (Buttons:=ButtonsExpression1 + vbDefaultButton2).
- Assign the value returned by the MsgBox function to a variable (CustomButtons2Variable = MsgBox(…)).
VBA statement explanation
- Item: CustomButtons2Variable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare CustomButtons2Variable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to CustomButtons2Variable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box where the second button is the default using this statement structure:
- The displayed message is PromptString.
- The message box contains the buttons specified by ButtonsExpression1. For purposes of working with the main custom button layouts, please refer to the appropriate sections of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=ButtonsExpression1 + vbDefaultButton2.
- VBA construct: Buttons argument of the MsgBox function.
- Description: Use the Buttons argument of the MsgBox function to specify the following:
- Number and type of buttons displayed in the message box.
- Icon style for the message box.
- That the second button in the message box is the default.
- Modality of the message box.
- Item: ButtonsExpression1.
- VBA construct: Numeric expression partially specifying the value assigned to the Buttons argument.
- Description: Specify ButtonsExpression1 as a sum of the following 3 groups of values or built-in constants:
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
Built-in constant Value Description vbOKOnly 0 Message box with only OK button vbOKCancel 1 Message box with OK and Cancel buttons vbAbortRetryIgnore 2 Message box with Abort, Retry and Ignore buttons vbYesNoCancel 3 Message box with Yes, No and Cancel buttons vbYesNo 4 Message box with Yes and No buttons vbRetryCancel 5 Message box with Retry and Cancel buttons Usually, when creating a message box where the second button is the default, you don't work with vbOKOnly (0). For purposes of working with these different custom button layouts, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the icon style of the message box, as follows:
Built-in constant Value Description vbCritical 16 Message box with Critical Message icon vbQuestion 32 Message box with Warning Query icon vbExclamation 48 Message box with Warning Message icon vbInformation 64 Message box with Information Message icon For purposes of working with these different icon styles, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the modality of the message box, as follows:
Built-in constant Value Description vbApplicationModal 0 Application modal message box vbSystemModal 4096 System modal message box For purposes of working with this different modality options, please refer to the appropriate sections of this Tutorial.
When specifying ButtonsExpression1:
- Specify ButtonsExpression1 as a sum of the applicable values or built-in constants.
- Omit the values from the groups you don't specify.
- Use a maximum of 1 value from each of these 3 groups.
- In addition to the values and built-in constants I list above, the Buttons argument accepts the following 4 settings:
Built-in constant Value Description vbMsgBoxHelpButton 16384 Message box with an additional Help button. The MsgBox function also accepts a (optional) helpfile and context arguments that specify the applicable Help file and Help context number.
Clicking on the Help button results in the applicable help being provided. The MsgBox function only returns a value when the user clicks 1 of the other buttons in the message box.
vbMsgBoxSetForeground 65536 Message box is the foreground window vbMsgBoxRight 524288 Text within the message box is aligned to the right vbMsgBoxRtlReading 1048576 Text within the message box is displayed as right-to-left reading on Hebrew and Arabic systems
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
- Item: vbDefaultButton2.
- VBA construct: vbDefaultButton2 built-in constant.
- Description: Include vbDefaultButton2 (or 256) in the numeric expression assigned to the Buttons argument to specify that the second button of the message box is the default button.
Macro example to create MsgBox where second button is default
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Yes and No buttons (vbYesNo). The second button (vbDefaultButton2) is set as the default.
- Assigns the value returned by the MsgBox function to a variable (myCustomButtonsDefault2MsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Yes button (If myCustomButtonsDefault2MsgBoxValue = vbYes), the macro creates a message box with the message “You clicked Yes on the message box”.
- If the user clicks the No button (ElseIf myCustomButtonsDefault2MsgBoxValue = vbNo), the macro creates a message box with the message “You clicked No on the message box”.
Effects of executing macro example to create MsgBox where second button is default
The following image illustrates the results of executing the macro example. Notice that, as expected, the second button in the message box is the default.
#17: Create MsgBox where third button is default
VBA code to create MsgBox where third button is default
To create a message box where the third button is the default with VBA, use a statement with the following structure:
CustomButtons3Variable = MsgBox(Prompt:=PromptString, Buttons:=ButtonsExpression + vbDefaultButton3)Process to create MsgBox where third button is default
To create a message box where the third button is the default with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox(…)).
- Specify the buttons to be displayed in the message box and, explicitly, specify that the third button is the default one (Buttons:=ButtonsExpression1 + vbDefaultButton3).
- Assign the value returned by the MsgBox function to a variable (CustomButtons3Variable = MsgBox(…)).
VBA statement explanation
- Item: CustomButtons3Variable.
- VBA construct: Variable.
- Description: Variable you want to hold the value returned by the MsgBox function.If you explicitly declare CustomButtons3Variable, you can usually work with the Integer data type.
- Item: =.
- VBA construct: Assignment (=) operator.
- Description: The = operator assigns the Integer value returned by the MsgBox function to CustomButtons3Variable.
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a message box where the third button is the default using this statement structure:
- The displayed message is PromptString.
- The message box contains the buttons specified by ButtonsExpression1. For purposes of working with the main custom button layouts, please refer to the appropriate sections of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=ButtonsExpression1 + vbDefaultButton3.
- VBA construct: Buttons argument of the MsgBox function.
- Description: Use the Buttons argument of the MsgBox function to specify the following:
- Number and type of buttons displayed in the message box.
- Icon style for the message box.
- That the third button in the message box is the default.
- Modality of the message box.
- Item: ButtonsExpression1.
- VBA construct: Numeric expression partially specifying the value assigned to the Buttons argument.
- Description: Specify ButtonsExpression1 as a sum of the following 3 groups of values or built-in constants:
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
Built-in constant Value Description vbOKCancel 1 Message box with OK and Cancel buttons vbAbortRetryIgnore 2 Message box with Abort, Retry and Ignore buttons vbYesNoCancel 3 Message box with Yes, No and Cancel buttons vbYesNo 4 Message box with Yes and No buttons vbRetryCancel 5 Message box with Retry and Cancel buttons Usually, when creating a message box where the third button is the default, you work with either vbAbortRetryIgnore (2) or vbYesNoCancel (3). For purposes of working with these different custom button layouts, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the icon style of the message box, as follows:
Built-in constant Value Description vbCritical 16 Message box with Critical Message icon vbQuestion 32 Message box with Warning Query icon vbExclamation 48 Message box with Warning Message icon vbInformation 64 Message box with Information Message icon For purposes of working with these different icon styles, please refer to the appropriate sections of this Tutorial.
- Values or built-in constants that specify the modality of the message box, as follows:
Built-in constant Value Description vbApplicationModal 0 Application modal message box vbSystemModal 4096 System modal message box For purposes of working with this different modality options, please refer to the appropriate sections of this Tutorial.
When specifying ButtonsExpression1:
- Specify ButtonsExpression1 as a sum of the applicable values or built-in constants.
- Omit the values from the groups you don't specify.
- Use a maximum of 1 value from each of these 3 groups.
- In addition to the values and built-in constants I list above, the Buttons argument accepts the following 4 settings:
Built-in constant Value Description vbMsgBoxHelpButton 16384 Message box with an additional Help button. The MsgBox function also accepts a (optional) helpfile and context arguments that specify the applicable Help file and Help context number.
Clicking on the Help button results in the applicable help being provided. The MsgBox function only returns a value when the user clicks 1 of the other buttons in the message box.
vbMsgBoxSetForeground 65536 Message box is the foreground window vbMsgBoxRight 524288 Text within the message box is aligned to the right vbMsgBoxRtlReading 1048576 Text within the message box is displayed as right-to-left reading on Hebrew and Arabic systems
- Values or built-in constants that specify the number and type of buttons displayed in the message box, as follows:
- Item: vbDefaultButton3.
- VBA construct: vbDefaultButton3 built-in constant.
- Description: Include vbDefaultButton3 (or 512) in the numeric expression assigned to the Buttons argument to specify that the third button of the message box is the default button.
Macro example to create MsgBox where third button is default
The following macro example does the following:
- Creates a message box with:
- The message “Create Excel VBA MsgBox”; and
- Yes, No and Cancel buttons (vbYesNoCancel). The third button (vbDefaultButton3) is set as the default.
- Assigns the value returned by the MsgBox function to a variable (myCustomButtonsDefault3MsgBoxValue).
- Checks which value was clicked by the user:
- If the user clicks the Yes button (Case vbYes), the macro creates a message box with the message “You clicked Yes on the message box”.
- If the user clicks the No button (Case vbNo), the macro creates a message box with the message “You clicked No on the message box”.
- If the user clicks the Cancel button (Case vbCancel), the macro creates a message box with the message “You clicked Cancel on the message box”.
Effects of executing macro example to create MsgBox where third button is default
The following image illustrates the results of executing the macro example. Notice that, as expected, the third button in the message box is the default.
#18: Create Application modal MsgBox
VBA code to create Application modal MsgBox
To create an Application modal message box with VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbApplicationModalProcess to create Application modal MsgBox
To create an Application modal message box with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should be Application modal (Buttons:=vbApplicationModal).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create an Application modal message box using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbApplicationModal.
- VBA construct: Buttons argument of the MsgBox function and vbApplicationModal built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbApplicationModal (or 0) to specify that the message box is Application modal. When a message box is Application modal, the user must respond to the message box prior to working again with the Excel Application.The default value of the Buttons argument is, anyway, 0. Therefore, if you omit specifying the Buttons argument, the result is also an Application modal message box with a single button (OK), which is also the default button, and no special icon style.
Macro example to create Application modal MsgBox
The following macro example creates an Application modal (vbApplicationModal) message box with the message “Create Excel VBA MsgBox”.
Sub MsgBoxApplicationModal() 'source: https://powerspreadsheets.com/ 'creates an Application modal message box 'for further information: https://powerspreadsheets.com/excel-vba-msgbox/ 'create an Application modal message box MsgBox Prompt:="Create Excel VBA MsgBox", Buttons:=vbApplicationModal End SubEffects of executing macro example to create Application modal MsgBox
The following image illustrates the results of executing the macro example. This message box is Application modal.
#19: Create System modal MsgBox
VBA code to create System modal MsgBox
To create a System modal message box with VBA, use a statement with the following structure:
MsgBox Prompt:=PromptString, Buttons:=vbSystemModalProcess to create System modal MsgBox
To create a System modal message box with VBA, follow these steps:
- Create a message box with the MsgBox function (MsgBox …).
- Specify that the message box should be System modal (Buttons:=vbSystemModal).
VBA statement explanation
- Item: MsgBox.
- VBA construct: MsgBox function.
- Description: The MsgBox function does the following:
- Displays a message in a message box.
- Waits for the user to click a button.
- Returns a value of the Integer data type. This value indicates the button of the message box clicked by the user.
When you create a System modal message box using this statement structure:
- The displayed message is PromptString.
- The message box contains a single button: OK. For purposes of including other custom button layouts, please refer to the appropriate sections of this Tutorial.
- The value returned by the MsgBox function is vbOK (or 1). For purposes of assigning the value returned by the MsgBox function to a variable, please refer to the appropriate section of this Tutorial.
- Item: Prompt:=PromptString.
- VBA construct: Prompt argument of the MsgBox function and string expression.
- Description: Use the Prompt argument of the MsgBox function to specify the message displayed in the message box. For these purposes:
- You generally specify PromptString as a string expression.
- If you explicitly declare a variable to represent PromptString, you can usually work with the String data type.
- The maximum length of PromptString is roughly 1024 characters. However, this maximum length may vary slightly depending on the width of the characters within PromptString.
- PromptString can be composed of multiple lines. For purposes of creating a message box with multiple lines (by including line breaks or new lines), please refer to the appropriate section of this Tutorial.
- Item: Buttons:=vbSystemModal.
- VBA construct: Buttons argument of the MsgBox function and vbSystemModal built-in constant.
- Description: Set the Buttons argument of the MsgBox function to vbSystemModal (or 4096) to specify that the message box is System modal. When a message box is System modal, the user must respond to the message box prior to working with any application.
Macro example to create System modal MsgBox
The following macro example creates a System modal (vbSystemModal) message box with the message “Create Excel VBA MsgBox”.
Sub MsgBoxSystemModal() 'source: https://powerspreadsheets.com/ 'creates a System modal message box 'for further information: https://powerspreadsheets.com/excel-vba-msgbox/ 'create a System modal message box MsgBox Prompt:="Create Excel VBA MsgBox", Buttons:=vbSystemModal End SubEffects of executing macro example to create System modal MsgBox
The following image illustrates the results of executing the macro example. This message box is System modal.
Learn more about creating message boxes with VBA
Workbook example used in this Excel VBA MsgBox Tutorial
You can get immediate free access to the example workbook that accompanies this Excel VBA MsgBox Tutorial by clicking the button below.
Từ khóa » Visual Basic Msgbox Example
-
MsgBox Function (Visual Basic For Applications) | Microsoft Docs
-
VBA - Message Box - Tutorialspoint
-
Excel VBA MsgBox [Message Box] - All You Need To Know!
-
VBA MsgBox Excel Examples - 100+ Message Box Macros
-
The Message Box - Visual Basic Functions - FunctionX
-
Yes No Message Box (Msgbox) - VBA Code Examples
-
VBA Msgbox - A Complete Guide To The VBA Message Box
-
VBA MsgBox - How To Use - Excel Trick
-
VBA MsgBox - Javatpoint
-
VISUAL BASIC - The VB Programmer
-
VBA MSGBOX - A Complete Guide To Message Box Function + ...
-
MsgBox In Excel VBA - Easy Message Boxes
-
Creating Message Box VBA Code In Excel - EduCBA
-
VBA MsgBox | How To Create Excel VBA Message Box? - EduCBA