VBA for Excel Lesson 9: Starting, Triggering a Macro in Excel (events)This is an excerpt from Pierre Leclerc (www.excel-vba.com) Note: If you are using Excel 2007 see lesson 9 here Note: Print this page, open Excel and a open a new workbook. Use ALT/F11 to open the Visual Basic Editor as you learned in lesson 1. When does the VBA procedure (macro) start? When an EVENT happens. The event is what triggers the VBA Excel procedure. In earlier lessons you have used an event to start your macros. In the Visual Basic Editor you have gone to the menu bar and clicked on "Run/Run Sub/Userform" and the macro was executed. You have also clicked on the F8 key at the top of your keyboard and the macro got executed line by line. You do not want your user to go to the Visual Basic Editor to trigger a macro. A lot of other events can happen to start a macro. The event that is mostly (90%) of macros used is clicking on a button. The button can be on the worksheet or on a userform that you would develop. The event can also be: opening the workbook, selecting a sheet, the value of a cell changing due to a manual input or due to the recalculation of a formula, clicking on a selected keystroke or going to the right menu item in Excel. Preparing the Exercise on Events To complete the following exercises, copy paste the code below from your browser to the code window of "Sheet1" of the new Excel workbook as you have learned in previous lessons. Sub proFirst() Range("A1" ).Value = 34 Range("A1" ).Select End Sub Macros Triggered from the Excel MenuStep 1: From the menu bar select "Macro/Macros". You will see the "Macro" dialog window below. Step 2: "Sheet1.proFirst" being selected in the list box and its name appearing in the text box above the list box just click "Run". The macro is automatically executed Step 3: Erase the contents of cells A1, A2 and A3. Macros Triggered by a KeystrokeIn this second first exercise on events we will get the macro to be keyboard activated by capital "s" (Shift/S). First you need to program a key. To do so: Step 1: From the menu bar select "Macro/Macros". You will see the "Macro" dialog window below. Step 2: "Sheet1.proFirst" being selected in the list box and its name appearing in the text box above the list box just click on "Options". A new dialog window "Macro Options" appears: Step 3: In the shortcut key text box enter a capital "s" "SHIFT/s" and then click "OK". Click "Cancel" in the dialog window Step 4: If you now click "CTRL/SHIFT/S" the macro will be executed instantly. Macros Triggered by Clicking on a Text Box on the Worksheet More than 90% of the macros are triggered by a click on a button located on a worksheet. We prefer using text boxes rather than VBA command buttons because they are much easier to maintain and allow much more creativity in the design. You can use the font that you like and the background color that fits your needs. If you are a little creative you can add 3D effects, special borders and others. To work with text boxes you need to see the "Drawing" toolbar. If you do not see it on your screen go to "View/Toolbars" and select "Drawing": Step 1: On the "Drawing" toolbar click on the text box icon once. Step 2: Move the curser toward the sheet, click and hold the left button of the mouse and stretch the text box to the desired dimension. Step 3: Right click on the text box, select "Assign Macro" from the menu and the "Assign Macro" dialog window appears: Step 4: Select "Sheet1.proFirst" from the list box and its name appears in the text box above the list box just click on "OK". Step 5: Click away from the text box on the Excel sheet. Step 6: Left click on the text box and the macro is executed. You can assign macros to text boxes, images or WordArt using the same approach. Go to the next lesson
|
The following is for Excel 2007 users
VBA for Excel Lesson 9: Starting, Triggering a Macro in Excel 2007 (The Events)Note: Print this page, open Excel and a open a new workbook. Use ALT/F11 to open the Visual Basic Editor as you learned in lesson 1. When does the VBA procedure (macro) start? When an EVENT happens. The event is what triggers the VBA Excel procedure. In earlier lessons you have used an event to start your macros. In the Visual Basic Editor you have gone to the menu bar and clicked on "Run/Run Sub/Userform" and the macro was executed. You have also clicked on the F8 key at the top of your keyboard and the macro got executed line by line. You do not want your user to go to the Visual Basic Editor to trigger a macro. A lot of other events can happen to start a macro. The event that is mostly (85%) of macros used is clicking on a button. The button can be on the worksheet or on a userform that you would develop. The event can also be: opening the workbook, selecting a sheet, the value of a cell changing due to a manual input or due to the recalculation of a formula, clicking on a selected keystroke or going to the right menu item in Excel. Preparing the Exercise on Events To complete the following exercises, copy paste the code below from your browser to the code window of "Sheet1" of the new Excel workbook as you have learned in previous lessons. Sub proFirst() Range("A1" ).Value = 34 Range("A1" ).Select End Sub Macros Triggered from the Developer RibbonStep 1: Select "Macros" from the "Developer" ribbon. You will see the "Macro" dialog window below. Step 2: "Sheet1.proFirst" being selected in the list box and its name appearing in the text box above the list box just click "Run". The macro is automatically executed Step 3: Erase the contents of cells A1, A2 and A3 You now see that colleagues must have installed VBA on their own computer to be able to use your macros from the "Developer" ribbon. Macros Triggered by a KeystrokeIn this second first exercise on events we will get the macro to be keyboard activated by capital "s" (Shift/S). First you need to program a key. To do so: Step 1: Select "Macros" from the "Developer" ribbon. You will see the "Macro" dialog window below. Step 2: "Sheet1.proFirst" being selected in the list box and its name appearing in the text box above the list box just click on "Options". A new dialog window "Macro Options" appears: Step 3: In the shortcut key text box enter a capital "s" "SHIFT/s" and then click "OK". Click "Cancel" in the dialog window Step 4: If you now click "CTRL/SHIFT/S" the macro will be executed instantly. Macros Triggered by Clicking on a Text Box on the Worksheet More than 90% of the macros are triggered by a click on a button located on a worksheet. We prefer using text boxes rather than VBA command buttons because they are much easier to maintain and allow much more creativity in the design. You can use the font that you like and the background color that fits your needs. If you are a little creative you can add 3D effects, special borders and others. Step 1: From the "Insert ribbon" click on the "Text Box" icon once. Lower the curser toward the sheet, click and hold the left button of the mouse and stretch the text box to the desired dimension. Step 2: Right click on the text box, select "Assign Macro" from the menu and the "Assign Macro" dialog window appears: Step 3: Select "Sheet1.proFirst" from the list box and its name appears in the text box above the list box just click on "OK". Step 3: Click away from the text box on the Excel sheet. Step 4: Left click on the text box and the macro is executed. You can assign macros to text boxes, images or WordArt using the same approach. Go to the next lesson |