Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, and 2013. 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, and 2013. You can find a version of this tip for the older menu interface of Excel here: Offering Options in a Macro.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
Want to add some macros to your workbook? What do you do if you try to add the macros but the program has disabled the tools?Discover More
If you need to consolidate a single column of data into multiple columns of data, you'll love this macro. It provides a ...Discover More
Sometimes you receive a phone number that contains alphabetic characters and you need to convert it to a purely numeric ...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.