chapter 12: recording macros spreadsheet-based decision support systems prof. name [email protected]...

41
Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name [email protected] Position (123) 456-7890 University Name

Upload: cecilia-hill

Post on 23-Dec-2015

261 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

Chapter 12: Recording Macros

Spreadsheet-Based Decision Support Systems

Prof. Name [email protected] (123) 456-7890University Name

Page 2: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

2

Overview

12.1 Introduction 12.2 Macros 12.3 Customizing toolbars and menu options 12.4 Summary

Page 3: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

3

Introduction

Recording a macro.

Writing simple VBA procedures.

Creating event procedures.

Assigning macros to drawing objects in Excel.

Customizing toolbars and menu items by assigning macros.

Page 4: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

4

Macros

Recording Macros

The VBA Code

Event Procedures

Page 5: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

5

Recording Macros

Macros are technically defined as units of VBA code.

Macros can be thought of as a way to automate a series of actions in a spreadsheet application.

Macros can either be created directly with VBA code in the Visual Basic Editor, or recorded in Excel.

To record a macro, we must know exactly the actions we wish to perform and then use the Macro Recorder.

Page 6: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

6

Figure 12.1

Let us record a macro which copies and pastes data.

A dealer wants to send the information from the first three columns and last column of the data table to the newspaper.

Page 7: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

7

Preparation

First we should review/practice the steps we will take when recording the macro– Highlight the first three columns of data with the cursor (C4:E13)

– Copy (using CTL+C, right-click and Copy, or the Edit option)

– Place the cursor in cell C19

– Paste (using CTL+P, right-click and Paste, or Edit option)

– Highlight the last column (K4:K13)

– Copy

– Place cursor in cell F19

– Paste

Page 8: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

8

Record

Now we are ready to record the macro– Tools > Macro > Record New Macro

– Record button from VBE Toolbar

When the Record Macro dialog box appears, we enter a name for the macro.

Page 9: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

9

Stop

Once you begin recording, notice that the Record button transforms to a Stop button.

After finishing the steps needed to copy and paste the information, you can stop recording.– Tool > Macro > Stop Recording Macro

– Stop button from the VBE Toolbar

Page 10: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

10

Play

Once you have recorded a macro, you can play it to ensure it works correctly.– Tools > Macros > Macros

– Play button from VBE Toolbar

Page 11: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

11

Result

We can see that the macro works correctly.

Page 12: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

12

VBA Code

As we learned earlier, each time a macro is recorded in Excel, VBA code is automatically generated.

Let us review what code was generated for this macro– Go the VBE window

– A module has been created in the Project Explorer

– Select the module to see the code in the Code Window

Page 13: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

13

VBA Code (cont)

Sub CarCopyPaste() Range("C5:E14").Select Selection.Copy Range("C20").Select ActiveSheet.Paste Range("K5:K14").Select Selection.Copy Range("F20").Select ActiveSheet.Paste Range("A1").Select

End Sub

This is the initial statement of every sub procedure.

– The Select method of the Range object selects the specified range of cells.

– The Copy method is used on the Selection object.

– The Paste method is used on the ActiveSheet object.

– These steps are repeated to copy and paste the last column.

– This last cell selection can be added to avoid leaving the cells highlighted.

This is the last statement of every sub procedure.

Page 14: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

14

Starting in VBA

Since we can study the VBA code generated when we record a macro,

we can easily learn how to create a similar macro directly from VBA by

copying the code generated.

We will now learn how to use Sort and Filter functions in VBA by first

recording a macro and then using the generated VBA code to create

similar macros starting in VBA.

Page 15: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

15

Figure 12.5

Suppose there is a database for the Miami Airport which lists Flight Destinations, Number of Stops, Class and Price.

We want to be able to filter this information so that we can do the following: – View flights to Beijing

– View flights to Hong Kong

– View all flights

We also want to be able to sort the data by – Number of Stops

– Price

Page 16: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

16

Filtering

We will begin by recording the macro to filter the data for viewing Beijing flights only.

To prepare for recording a macro to filter the data table, we review the steps we will perform– Highlight all data (B3:E15)

– Data > Filter > AutoFilter

– Select the drop-down button for “Destination” column

– Filter for Beijing flights

– Select cell A1

Page 17: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

17

Excel to VBE

We can check this recorded macro to ensure it works. Now we can go to VBE to view the code generated.

Page 18: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

18

Creating New Code

Now that we know the basic structure of the code, we can simply modify it to accomplish the other filtering macros.

Sub ViewBeijingFlights()

Range("B3:E15").Select

Selection.AutoFilter Field:=1, Criteria1:="Beijing"

Range("A1").Select

End Sub

The Sub titles will change for each new macro

– The AutoFilter method will be used on the same selection to generate the filtering drop-down arrows

– Field:=1 denotes the “Destination” column, we can modify this value

– Criteria1:=“Beijing” is the value which is filtered, we can also modify this value

Page 19: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

19

New Macros from VBA

We can now create a macro to view Hong Kong flights and view All flights by using the code from the recorded macro.------------------------------------------------------

Sub ViewHongKongFlights()

Range("B3:E15").Select

Selection.AutoFilter Field:=1, Criteria1:="Hong Kong"

Range("A1").Select

End Sub

------------------------------------------------------

Sub ViewAllFlights()

Range("B3:E15").Select

Selection.AutoFilter Field:=1

Range("A1").Select

End Sub

------------------------------------------------------

Page 20: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

20

Sorting

We will now record a macro to sort the data by number of stops.

To prepare for recording a macro to sort the data table, we review the steps we will perform– Highlight all data (B3:E15)

– Data > Sort

– Select “Stops” from the Sort by list

– Select Descending as the order

– Select cell A1

Page 21: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

21

Excel to VBE

We can check this recorded macro to ensure it works.

Now we can go to VBE to view the code generated.

Page 22: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

22

Creating New Code

Now that we know the basic structure of the code, we can simply modify it to accomplish the other sorting macros.

Sub SortByStops()

Range("B3:E15").Select

Selection.Sort Key1:=Range("C4"), Order1:=xlDescending

Range("A1").Select

End Sub

The Sub titles will change for each new macro

– The Sort method will be used on the same selection

– Key1:=Range(“C4”) denotes the “Stops” column

– Order1:= xlDescending is the order in which the data will be sorted

Page 23: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

23

New Macro from VBA

We can now create a macro to sort by price by using the code from the recorded macro.------------------------------------------------------

Sub SortByPrice()

Range("B3:E15").Select

Selection.Sort Key1:=Range("E4"), Order1:=xlDescending

Range("A1").Select

End Sub

------------------------------------------------------

Page 24: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

24

Event Procedures

Event Procedures connect events or actions of an Excel object to a specific macro of VBA code.– Click

– Change

– Activate

To find a list of available/applicable event procedures in VBE, look at the top of the Code Window.– Choose and object from the object list

– Choose an event from the event list

Page 25: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

25

Event Procedures (cont)

For example, the Activate event can be used on the Worksheet object.

Once an object and event are selected, a sub procedure will be initiated.

Page 26: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

26

Control Toolbox

The Control Toolbox is a set of objects to which event procedures are usually assigned.

– View > Toolbars > Control Toolbox– Icon from VBA Toolbar– Click and drag from toolbar to spreadsheet

There are many controls available to put on the spreadsheet

– Text, labels– Spin buttons, toggle buttons– List box, combo box– Check boxes, option buttons

Page 27: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

27

Control Properties

Each control has its own set of properties which can be modified– Name = name of the control, this will be used to identify it in VBA (ex:

cmdButton)

– Caption = text which appears on the control (ex:“Click Here”)

The Click event procedure can now be associated with this new object by titling are sub procedure– Sub cmdButton_Click()

Page 28: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

28

Command Button

Let us add a command button to perform one of the filtering macros we previously wrote in VBA and set the following properties.– Name = cmdHongKong

– Caption = “View Hong Kong Flights”

Page 29: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

29

Event Procedure

We can now copy and paste the code for this macro to a new sub procedure as follows.

Sub cmdHongKong_Click()

Range("B3:E15").Select

Selection.AutoFilter Field:=1, Criteria1:="Hong Kong"

Range("A1").Select

End Sub

This title can be automatically generated if we select the command button cmdHongKong from the list of objects and then select Click from the list of events.

Page 30: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

30

Drawing Controls

We can also make a button instead of using a command button from the control toolbox.

Create rectangle and then add text to it by right-clicking and choosing Add Text; then format the rectangle as desired.

Page 31: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

31

Assigning the Macro

You can now simply right-click on the button you created and select Assign Macro from the drop-down list.

A list of all macros in the open workbooks will appear, select one and your button has become activated.

Page 32: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

32

Buttons

We can now create buttons for each of the macros we previously wrote. Assign a macro to each new button respectively.

Page 33: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

33

Customizing Toolbars and Menu Options

Create a toolbar with icons associated with a particular macro.– View > Toolbars > Customize

There are three tabs in the Customize window:– Toolbars = list of all current toolbars, option to create a New toolbar

– Commands = list of commands to add to a toolbar, option to assign macros, option to create New Menu

– Options = general options

Page 34: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

34

Custom Toolbar

Let us create a new toolbar and place some icons to associate with the filtering macros we wrote.– First, choose New from the Toolbars tab of the Customize window.

– Enter the name “Filter”

Page 35: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

35

Custom Toolbar (cont)

Now go to the Commands tab and find the Macros category.– Since we are creating a toolbar, we select Custom Button.

– Drag this button to the new toolbar.

Page 36: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

36

We now use the Modify Selection button to– Name the button

– Change the button image

– Assign a macro

Custom Toolbar (cont)

Page 37: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

37

Customizing Menu Options

Customizing a menu option is done in a similar way.

We can ignore the Toolbars tab and move to the Commands tab and choose New Menu from the Categories list.

Page 38: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

38

Custom Menu

Let us create a new menu option for our sorting macros.

We select New Menu and then use Modify Selection to give a name to the new menu item.

Page 39: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

39

Custom Menu (cont)

We now again choose Macros from the Commands tab and this time select Custom Menu Item.

Again use Modify Selection to give a name and new icon to the new menu item, then assign a macro.

Page 40: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

40

Summary

Macros are technically defined as units of VBA code. Macros can either be created directly with VBA code in the Visual Basic

Editor, or recorded in Excel. Steps to Record a Macro:

– 1. Choose Tools > Macros > Record New Macro or choose the Record icon from the VBA toolbar;

– 2. Perform a sequence of actions in Excel;

– 3. Choose Tools > Macros > Stop Recording or choose the Stop icon from the VBA toolbar.

Events are actions that can take place in the Excel window that cause an action to occur in the VBA code.

An event procedure is just like a sub procedure, except that it is associated with a particular action of an Excel object.

Page 41: Chapter 12: Recording Macros Spreadsheet-Based Decision Support Systems Prof. Name name@email.com Position (123) 456-7890 University Name

41

Additional Links

(place links here)