Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
135 views

The Visual Basic Editor: School of Construction

This document discusses recording macros in Excel Visual Basic for Applications (VBA) to automate tasks. It provides an example where a car dealer wants to copy data from one part of a spreadsheet to another to send to a newspaper. The document guides the reader through recording a macro called CarCopyPaste to select, copy, and paste the relevant data. It discusses naming macros and the basic interface of the Visual Basic Editor used to work with VBA code.

Uploaded by

avdesh7777
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
135 views

The Visual Basic Editor: School of Construction

This document discusses recording macros in Excel Visual Basic for Applications (VBA) to automate tasks. It provides an example where a car dealer wants to copy data from one part of a spreadsheet to another to send to a newspaper. The document guides the reader through recording a macro called CarCopyPaste to select, copy, and paste the relevant data. It discusses naming macros and the basic interface of the Visual Basic Editor used to work with VBA code.

Uploaded by

avdesh7777
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 43

School of Construction

MBA CPM 1st Semester

THE VISUAL BASIC EDITOR


IN EXCEL

Authored By:
• Sanjay Bhattacharya

Statistics and Computer Application in Construction CM 656.


Outline
 In this module, the following topics will be covered:
– Introduction to the Excel Visual Basic for Applications (VBA)
programming language
 The Excel object model
 The difference between a property, a method, and an event
 Fundamental skills for reading, understanding, and writing basic Excel
VBA code
– Basic user interface development
 Assigning sub procedures to shapes (i.e., buttons)

2
The Visual Basic Editor (VBE)

3
The Visual Basic Editor
 The Visual Basic Editor (VBE) is the environment in which
you work with Excel VBA code
 Excel and the VBE have separate windows
– You can toggle between as needed by pressing Alt+F11

Excel VBE

4
The Visual Basic Editor (cont.)
 Access the VBE through the Developer Ribbon (Excel 2013)
1) Open Excel 2013 and click on the green tab labeled “File”
2) Click on “Options” (the window “Excel Options” will appear)
3) Click on “Customize Ribbon”
4) Make sure the entry in the combo box labeled “Customize the Ribbon”
reads “Main Tabs”
5) Select the option “Developer”
6) Click OK

5
The Visual Basic Editor (cont.)
 There are three main windows in the VBE
– Project Explorer Window
– Properties Window
– Code Window

 Two additional windows in the VBE are mainly used for


debugging
– Immediate Window
– Watch Window

 VBE Toolbars
– Standard toolbar

6
The Visual Basic Editor (cont.)
 The VBE’s windows

Project
Explorer Code
Window

Properties
Window
Watch
Window

Immediate
Window

7
Project Explorer
 Lists all projects in any open workbook

 Each workbook has a project, and each


project can have several parts
– Objects (e.g., workbook and worksheets)
– Modules
– Forms

 In the VBE, you can use Insert >


Module to add a new module to the
current project
– Can also use icon from standard toolbar

8
Properties Window
 Contains detailed information about any
selected part of a project in the Project
Explorer

 Some basic naming and formatting


properties can be modified for
worksheets and workbooks

 Properties are very important for user


forms
– Formatting
– Position
– Picture
– Scrolling
– Behavior
9
Code Window
 Displays the VBA code for the highlighted part of a project in
the Project Explorer

 When macros are recorded, VBA code is simultaneously


created and can be edited in the VBE

 You will write your own code in this window, once you are
more familiar with Excel VBA

10
Immediate and Watch Windows
 Both of these windows are used for debugging
– The Immediate Window allows you to enter code that is executed
immediately
 As long as the syntax is correct
– The Watch Window displays values of inserted variables

 Use the View menu option to view or hide any window

11
The Excel VBA
Programming Language

12
Visual Basic for Applications
 Visual Basic for Applications (VBA) brings a dynamic
element to spreadsheet-based decision support systems
(DSS) applications

 VBA can be used to perform the same spreadsheet functions


that are done in Excel along with some other advanced
Excel object manipulation

 For example, VBA can be used to:


– Modify a spreadsheet
– Create a user interface
– Perform simulation models
– Solve optimization problems

13
Visual Basic for Applications (cont.)
 The VBA programming language is common across all
Microsoft (MS) Office applications
– In addition to Excel, you can use VBA in Word, PowerPoint, Access
and Outlook

 When you work with a particular application, you need to


learn about the objects it contains
– E.g., Word  Documents, paragraphs, words, etc.

 Each MS Office application has a clearly defined set of


objects according to the relationships among them
– This structure is referred to as the application’s object model

14
The Excel Object Model
 Objects in Excel include (but are not limited to)
– Workbooks and worksheets
– Cells and ranges of cells
– Charts and shapes

 There is an object hierarchy which orders these objects


– Workbooks contain worksheets
– Worksheets contain ranges
– Ranges contain cells

 Objects in Excel are manipulated in VBA via


– Properties
 Physical characteristics of objects that can be measured or quantified
– Methods
 Actions that can be performed by objects or on objects

15
The Excel Object Model (cont.)
 Objects in Excel also respond to events
– Double-click on a cell
– Opening or closing a workbook
– A recalculation of a worksheet

16
The Excel Object Model (cont.)

Workbook

Cell Range

Cell

Worksheets

17
Macros
 Macros will be used to illustrate basic Excel VBA coding
– Recording macros creates VBA code automatically
 This code can be studied
– Macros are useful in developing the fundamental skills for reading,
understanding, and writing VBA code
 Main topics will include
– Recording a macro
– Writing simple VBA procedures
– Creating event procedures
– Assigning macros to drawing objects in Excel

18
Macros (cont.)
 Macros are technically defined as units of VBA code
– A macro automates a repetitive series of actions in an Excel
spreadsheet application
– Macros can be recorded in Excel or created directly by writing VBA
code in the Visual Basic Editor (VBE)

 In VBA, macros are referred to as procedures


– There are two types of procedures
 Sub procedures
 Function procedures
– The macro recorder can only produce sub procedures

 To record a macro, we must know exactly the actions we


wish to perform and then use the Macro Recorder
19
Macro Example
 Let us record a macro to copy and then paste data
– Create an Excel file CarDealer_Example.xls
 A dealer wants to send the information from the first three
columns and last column of the data table (highlighted in
yellow) to a newspaper

20
Macro Example (cont.)
 We should first review/practice the steps we will take when
recording the macro
– Highlight (i.e., select) the first three columns of data with the cursor
(C5:E14)
– Copy the selection using CTL+C
 You can also right-click the selection and click on Copy
– Highlight (i.e., select) cell C18
– Paste the data using CTL+P
 You can also right-click the selection and click on Paste
– Highlight (i.e., select) the last column (K5:K14)
– Copy the selection using CTL+C
– Highlight (i.e., select) cell F18
– Paste using CTL+P
– Select cell A1 and then press Esc

21
Macro Example (cont.)
 Now we are ready to record the macro

 You can do this in several different ways


– Select View > Macros > Record Macro…
– Record Macro button from the Developer Toolbar

– Click on the Record Macro icon located next to the legend “Ready”
on the lower left corner of the workbook

22
Macro Example (cont.)
 When the Record Macro dialog box appears, we enter a
name for the macro
– The macro name should begin with a letter and may contain only
letters, numbers and the underscore (i.e., _) character
– Maximum length is 255 characters
– Do not use special characters (e.g., !, ?, &) or blank spaces

 Use a short and descriptive name


– Use _ to separate words
 First_Macro
– Capitalization works well too
 FirstMacro

 Enter CarCopyPaste as the macro name for this example


23
Macro Example (cont.)
 Once you begin recording, notice that the Record Macro
button is now the Stop Recording button

 After finishing the steps needed to copy and paste the


information, you can stop recording
– Select View > Macros > Stop Recording
– Click on the Stop Recording button from the Developer Toolbar
 There is also a Stop button on the lower left corner of the workbook
– Click on the square button next to the legend “Ready”

24
Saving Excel Files Containing Macros
 When a normal workbook (i.e., one without macros) is
saved, MS Excel appends the standard .xlsx extension
 For workbooks containing macros, the file must be saved
as a Macro-Enabled file
– In this case, Excel appends the special extension .xlsm to these
files
 If you fail to save a file containing macros with the .xlsm
extension, ALL YOUR WORK WILL BE LOST!

25
Macro Security
 Macro security is an important feature since MS Excel 2007
– Because macros may be used to harm your computer
 The level of protection can be set directly from the
Developer ribbon by selecting Macro Security

26
Macro Security (cont.)
 When you open a spreadsheet that contains macros, Excel
displays a warning on the ribbon alerting you that macros
have been disabled

 Select Enable Content only if you are sure the file is safe

27
Macro Security (cont.)
 To avoid having to authorize every spreadsheet with
macros that is opened, define your working directory as a
trusted location

28
Macro Security (cont.)
 Save your file in the trusted location that you just defined
– Make sure to save it as fileName.xlsm

 Remember
– If you save your file with the extension .xlsx, all you macros will
be lost!

29
Running the Macro
 Once you have recorded a macro, you can run it to ensure it
works correctly
– Select View > Macros > View Macros
 Select macro “CarCopyPaste” from list and press Run
– Press button Macros on the Developer Toolbar
 Select macro “CarCopyPaste” from list and press Run

30
VBA Code
 As we learned earlier, each time a macro is recorded in
Excel, VBA code is generated automatically
 Let us review the code that was generated for this macro
– Go the VBE window (Alt-F11)
– A Modules folder has been added to the Project Explorer
– Expand the folder and double-click on “Module1” to see the code in
the Code Window

31
VBA Code (cont.)
Sub CarCopyPaste()  This is the initial statement of every
sub procedure
Range("C5:E14").Select – The Select method of the Range
Selection.Copy object selects the specified
Range("C18").Select range of cells
ActiveSheet.Paste – The Copy method is used on the
Selection object
Range("K5:K14").Select – The Paste method is used on
Application.CutCopyMode = False the ActiveSheet object
Selection.Copy – The CutCopyMode method
Range("F18").Select removes the moving border
ActiveSheet.Paste – These steps are repeated to
copy and paste the last column
Range("A1").Select – This last cell selection can be
Application.CutCopyMode = False added to avoid leaving the cells
highlighted
End Sub  This is the last statement of every
sub procedure
32
Learning to Code in Excel VBA
 The VBA code generated when we record a macro can be
studied
– This way, we can easily learn how to create a similar macro directly
from VBA by copying the code generated

33
Creating New VBA Code (cont.)
 Assume the dealer now wants to add vehicle mileage
information to the previously recorded macro
– Mileage information is contained in range F4:F14

 Write (do not record) code that accomplishes this


– Name your macro AddMileage()

34
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
– Double click on the Sheet1 member of the Microsoft Excel Object
tree
– Choose Worksheet from the object list combo box
 The label(General) is displayed in the combo box
– Choose the Change event from the event list combo box
 The label (Declarations) is displayed in the combo box

35
Assigning Macros to Shapes
 MS Excel shapes (e.g., a rectangle) can be employed to
simulate buttons
– Recall that shapes are also objects in Excel

 Macros can then be assigned to these buttons


– Simplifies the process of running macros
– This is part of creating graphical user interfaces for DSS

36
Assigning Macros to Shapes (cont.)
 To create a simple button do the following
– Select Insert > Shapes > (Select a Rectangular shape)
– Then add text to it by right-clicking it and choosing Edit Text
– Format the rectangle as desired

37
Assigning Macros to Shapes (cont.)
 Once your button shape is ready, right-click on it and select
Assign Macro from the drop-down list
– A list of all macros in the open workbooks will appear

 Select a macro for your button to run


– Your button has become activated

 We can now create buttons for each of the macros we


previously wrote
– Create as many buttons as needed for your macros
– Assign a macro to each new button

38
Buttons Shifting on Worksheet
 You may notice that buttons sometimes
shift inside the worksheet as macros are
executed
 Fix for drawn controls
– First, select a cell just outside the control and
click it
– Right mouse-click on the button and select Size
and Properties…
– Select the Properties tab and select the option
“Don’t move or size with cells”
– Click Close

39
Limitations with Macros
 Although keyboard macros are well worth learning, they are
limited
 In particular, they cannot do the following:
– Perform repetitive actions (i.e., loops)
– Perform conditional actions
 Take different actions depending on whether something is true or false
– Assign values to variables
– Specify data types
 Variables can store integers, decimal numbers, strings, etc.
– Display pop-up messages
– Display custom dialog boxes
 These limitations are overcome by writing your own macros
in VBA

40
Summary
 The Visual Basic Editor (VBE) is the environment in which
you work with VBA programming code

 There are three main windows in VBE


– The Project Explorer Window
– The Code Window
– The Properties Window

 The VBA programming language is common across all


Microsoft (MS) Office applications
– Excel has a particular object model
– Objects in Excel can be manipulated by changing their properties or
calling their methods

41
Summary (cont.)
 Properties are the physical descriptions of all Excel objects
– The description of the particular property is called the value of the
property

 Methods are the actions that can be performed on the object


– The elements of a method statement are called the arguments of the
method

 Macros are technically defined as units of VBA code


– VBA code that is recorded in Excel is referred to as a macro
– VBA code that is written by a programmer is referred to as a
procedure
 Sub procedure
 Function procedure

42
Summary (cont.)
 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

43

You might also like