Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, and 2016. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Offering Options in a Macro.
by Allen Wyatt
(last updated November 2, 2017)
Prompt = "1. This is your first choice" + vbCrLf Prompt = Prompt + "2. This is your second choice" + vbCrLf Prompt = Prompt + "3. This is your third choice" + vbCrLf Prompt = Prompt + "4. This is your fourth choice" + vbCrLf Prompt = Prompt + "5. This is your fifth choice"You can now use the Prompt string when you invoke the InputBox function in your macro. You then translate what the user responds with into a number that represents their choice from your five options. The code to do this is as follows:
UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp)In this example, the response from the InputBox function is assigned to the UserResp variable, which should be a string. The UR variable, which is a numeric, is then set based on the value of the string. (The Val function returns the value in a string.) The only thing left to do is to take an action based on which number was chosen, 1 through 5. You can use the Select Case structure to do this. The full subroutine could appear as follows:
Sub Macro1() Dim Prompt As String Dim UserResp As String Dim UR As Single Prompt = "1. This is your first choice" + vbCrLf Prompt = Prompt + "2. This is your second choice" + vbCrLf Prompt = Prompt + "3. This is your third choice" + vbCrLf Prompt = Prompt + "4. This is your fourth choice" + vbCrLf Prompt = Prompt + "5. This is your fifth choice" UR = 0 While UR < 1 Or UR > 5 UserResp = InputBox(Prompt, "The Big Question") UR = Val(UserResp) Wend Select Case UR Case 1 'Do stuff for choice 1 here Case 2 'Do stuff for choice 2 here Case 3 'Do stuff for choice 3 here Case 4 'Do stuff for choice 4 here Case 5 'Do stuff for choice 5 here End Select End SubNotice that this example uses a While ... Wend loop around the InputBox function. This is done to make sure that the user enters a number between 1 and 5. If the value entered is outside that range, then the user is simply asked again.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (11059) applies to Microsoft Excel 2007, 2010, 2013, and 2016. You can find a version of this tip for the older menu interface of Excel here: Offering Options in a Macro.
Save Time and Supercharge Excel! Automate virtually any routine task and save yourself hours, days, maybe even weeks. Then, learn how to make Excel do things you thought were simply impossible! Mastering advanced Excel macros has never been easier. Check out Excel 2010 VBA and Macros today!
The macro programming language used in Excel gives you a great many tools that allow you to modify the way that Excel ...Discover More
Make your macros too long, and Excel may just refuse to run them at all. This tip explains what the limit is for macros, ...Discover More
When creating a workbook that will be used by others, you may wish to ensure that the user fills in some cells before ...Discover More
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.