Use the Tab key to indent some of the lines to make your code easier to read. Indenting isn’t necessary, but it’s a good habit to acquire.
A single line of VBA code can be as long as you need it to be. However, you may want to use the line-continuation characters to break up lengthy lines of code. To continue a single line of code (also known as a statement) from one line to the next, end the first line with a space followed by an underscore (_). Then continue the statement on the next line. And don’t forget the space. An underscore character that’s not preceded by a space won’t do the job.
Here’s an example of a single statement split into three lines:Selection.Sort Key1:=Range("A1"), _ Order1:=xlAscending, Header:=xlGuess, _ Orientation:=xlTopToBottomThis statement would perform exactly the same way if it were entered in a single line (with no line-continuation characters). Notice that the second and third lines of this statement are indented. Indenting is optional, but it helps clarify the fact that these lines are not separate statements. The white-coated engineers who designed the VBE anticipated that people would be making mistakes. Therefore, the VBE has multiple levels of undo and redo. If you deleted a statement that you shouldn’t have, click the Undo button on the toolbar (or press Ctrl+Z) until the statement shows up again. After undoing, you can use the Redo button to perform the changes you’ve undone. Are you ready to enter some real-live code? Try the following steps:
-
Create a new workbook in Excel.
-
Press Alt+F11 to activate the VBE.
-
Click the new workbook’s name in the Project window.
-
Choose Insert → Module to insert a VBA module into the project.
-
Type the following code in the module:
Sub GuessName() Msg = "Is your name " & Application.UserName & "?" Ans = MsgBox(Msg, vbYesNo) If Ans = vbNo Then MsgBox "Oh, never mind." If Ans = vbYes Then MsgBox "I must be psychic!" End Sub
-
Position the cursor anywhere within the text you typed and press F5 to execute the procedure.
F5 is a shortcut for the Run → Run Sub/UserForm command. If you entered the code correctly, Excel executes the procedure, and you can respond to the simple dialog box. Remember, the text in the dialog box will be different.
The GuessName procedure displays this dialog box.
If you followed the previous steps, you just wrote a VBA Sub procedure, also known as a macro. When you press F5, Excel executes the code and follows the instructions. In other words, Excel evaluates each statement and does what you told it to do. (Don’t let this newfound power go to your head.) You can execute this macro any number of times — although it tends to lose its appeal after a few dozen times. For the record, this simple macro uses the following concepts:
-
Defining a Sub procedure (the first line)
-
Assigning values to variables (Msg and Ans)
-
Concatenating (joining) a string (using the & operator)
-
Using a built-in VBA function (MsgBox)
-
Using built-in VBA constants (vbYesNo, vbNo, and vbYes)
-
Using an If-Then construct (twice)
-
Ending a Sub procedure (the last line)