getting started with microsoft excel macros

27
Nick Weisenberger GETTING STARTED WITH MICROSOFT EXCEL MACROS Excel Spreadsheets Help Help

Upload: nick-weisenberger

Post on 28-Nov-2014

2.698 views

Category:

Software


4 download

DESCRIPTION

A macro is a series of functions written in a programming language that is grouped in a single command to perform the requested task automatically. Excel macros are used to save time and reduce the possibility of human error by automating repetitive processes.

TRANSCRIPT

Page 1: Getting started with Microsoft Excel Macros

Nick Weisenberger

GETTING STARTED WITH MICROSOFT EXCEL

MACROS

Excel Spreadsheets Help Help

Page 2: Getting started with Microsoft Excel Macros

A macro is a series of functions written in a programming language that is grouped in a single command to perform the requested task automatically.

Macros use programming but you don't need to be a programmer or have programming knowledge to use them (though it certainly does help).

If you perform a task repeatedly you can take advantage of a macro to automate the task.

WHAT IS A MACRO?

Page 3: Getting started with Microsoft Excel Macros

Macros are used to save time and reduce the possibility of human error by automating repetitive processes. Other reasons for using macros include: Standardization Improving efficiency Expanding Excel's capabilities Streamlining procedures

WHY USE MACROS?

Page 4: Getting started with Microsoft Excel Macros

The application of automation in the design process is virtually unlimited. Some real world examples of Excel automation at work: Export to Word, PPT, email, etc. Reset a spreadsheet template to blank Allows user who has little experience with Excel to do

complicated tasks Automatically create folders Combine multiple workbooks into one And so on and so on. The possibilities are nearly limitless.

MACRO EXAMPLES

Page 5: Getting started with Microsoft Excel Macros

Macros within Excel are created by two primary methods: Using the macro recorder or Writing custom code with the macro editor To view macros in a workbook: Go to View tab at top > Macros Keyboard shortcut: Alt+F8

HOW TO CREATE MACROS

Page 6: Getting started with Microsoft Excel Macros

One method for creating macros is by recording your mouse actions by:

Going to View>Macros>Record Macro Enter a name then click OK. Excel is now recording your actions until you click the stop

button in the lower left hand corner DON'T: Record more than is absolutely necessary. DON'T: Use the UNDO button when recording a macro. DO: Check each macro after it 's recorded. To view the code that was just recorded go to

View>Macros>View Macros > Select the macro then click Step Into to launch the macro editor.

MACRO RECORDER

Page 7: Getting started with Microsoft Excel Macros

Many times extra lines of code are added which are not necessary. This is based on the order of steps that you do as you record the macro. These unnecessary lines can be removed.

Recorded macros do not contain any comments or explanations of what is happening in the code and input parameters are never recorded.

Recorded macros are very simple and don’t contain If statements, Loops, or other commonly used code.

Record macros can be used for simple tasks but it is better to write custom code; use the recorder if you get stuck or to find out the syntax if you don’t know it.

CONS OF MACRO RECORDING

Page 8: Getting started with Microsoft Excel Macros

To write custom macros you need to know Excel’s programming language, Visual Basic for Applications.

VBA provides a complete programming environment with an editor, debugger, and help object viewer.

Excel cannot run a macro program WITHOUT the host application (Excel) running (meaning it runs as a DLL in the same memory space as the host application).

Excel macros are run in-process, meaning Excel essentially freezes while the macro is running and the allocation memory is wiped clean after each run of the program so passing data between subsequent runs is impossible.

PROGRAMMING LANGUAGE

Page 9: Getting started with Microsoft Excel Macros

Syntax is defined as the ordering of and relationship between the words and other structural elements in phrases and sentences.

Each programming language is composed of its own syntax. Think of it l ike this: when you see an email address

([email protected]) you immediately identify it as an email address. Why is this? An email address has a correct structure in the language of the internet, its syntax.

Syntax enables the programming language to understand what it is you are trying to do

MACRO SYNTAX

Page 10: Getting started with Microsoft Excel Macros

Case Sensitivity: By default, VBA is not case sensitive and does not dif ferentiate between upper-case and lower-case spelling of words.

Comments: Add comments to your statements using an apostrophe ('), either at the beginning of a separate line, or at the end of a statement. It is recommended that you add comments wherever possible to make your scripts easier to understand and maintain, especially if another user has to make changes to it later on down the road.

Indentation: Indent or out dent script to reflect the logical structure and nesting of the statements to make it easier to read.

Parentheses: It is important to use parentheses correctly in any statement to achieve the desired result and to avoid errors.

SYNTAX

Page 11: Getting started with Microsoft Excel Macros

Semicolon (:): Inserting a semicolon allows you to write multiple commands on the same line of code.

Single Quotation(‘): To return a single quotation mark which does not indicate a comment (needed in a formula for example), you'll have to use the Chr function. Chr() is a built-in VBA function that returns the character that corresponds to the numeric value of its argument using the ASCII coding scheme. If you provide Chr with an integer value (such as 39) it will report back the character that corresponds to that value. The ASCII value of 39 is the single quote mark. Chr(34) is for the double quote mark

Spaces: Add extra blank spaces to your script to improve clarity. These spaces are ignored by VBA.

SYNTAX

Page 12: Getting started with Microsoft Excel Macros

Text Strings: When a value is entered as a text string you must add quotation marks before and after the string.

You can concatenate, or combine, multiple strings using a plus (+) or ampersand (&) sign: txtString = “This value is “+ TestValue. Return the left, middle, or right of a string using: left(sting, digits), mid(string, digits), or right(string, digits). Get the complete length of a string with len(string). To figure out if a string contains another string use Instr(). Convert numeric strings and vice versa using str(num) or val(string).

Underscore(_): Carry over to next line (line concatenation symbol).

SYNTAX

Page 13: Getting started with Microsoft Excel Macros

When you run your macro program, the code will be read by the computer line by line, generally from top to bottom and from left to right, just like reading a book.

The program flows down the code until it hits a decision point where it may have to jump to a dif ferent portion of the program or re-run lines of code that it already read.

The program chooses what lines of code to execute based on the state of the variables you have defined.

SEQUENTIAL PROGRAMMING

Page 14: Getting started with Microsoft Excel Macros

The execution of the program depends on an event, such as a user clicking a button with the mouse, an object being selected, certain text or characters being typed into a form, etc.

One common decision point is an If.. .Else statement. If the variable equals x then do y, else do z.

Another one is the while loop which will execute the lines of code within the loop over and over until the condition becomes false.

EVENT DRIVEN PROGRAMMING

Page 15: Getting started with Microsoft Excel Macros

Variables make up the backbone of any programming language.

Variables store information that can be accessed later by referring to a name or “variable.”

Variables can then be declared as a type to let us know what we can do with that information.

The value of a variable will not necessarily be constant throughout the duration a program is running.

Naming variables is important; it’s best to be descriptive i.e. RowNumber, ColumnNumber

VARIABLES

Page 16: Getting started with Microsoft Excel Macros

Variable names, also known as identifiers, must be less than 255 characters

They cannot start with a number. Special characters such as spaces and periods are forbidden. Avoid naming conflicts; two variables cannot have the same

name.

Example: Good Variable Names: dimensionOne, dimension1 Bad Variable Names: dimension One, 1dimension

VARIABLES

Page 17: Getting started with Microsoft Excel Macros

There is a popular naming convention where a letter is placed in front of the variable name to notate what type of data the variable is: o=object (i .e. oPartDoc) s=selection (i.e sSelection1) str=string (i.e. strFilename) i=integer (i.e iCount) rng=Range (i.e. rngField)

Some programmers use “int” or “n” for integer and “str” for string. Either or works as long as your notation is consistent and easy for others to understand.

VARIABLES NOTATION

Page 18: Getting started with Microsoft Excel Macros

By default, Excel doesn’t force you to declare your variables. However, you should change that setting immediately. Press Alt+F11 to launch the Visual Basic Editor (VBE). Go to Tools>Options.

In the Editor tab of the Options dialog, make sure that there’s a check mark in front of “Require Variable Declaration”

Page 19: Getting started with Microsoft Excel Macros

Now you’ll see Option Explicit as the first l ine of the module. This tells Excel that all variables must be declared, making our code easier to follow.

OPTION EXPLICIT

Page 20: Getting started with Microsoft Excel Macros

Variables are "dimmed" (declared) as a type, either a "primitive" type (single, double, integer, string, etc.) or an object type (more complex).

The "Dim" command is used to allocate a variable of any type. Primitive variables are populated with a value. Declaring variables with a ‘Dim’ statement helps save memory while running the program .

After a variable is declared through dimming then it is “Set” or given a value.

For object variables, the "Set" command is used to "point" the variable to the object. Within the program, the variable then represents that object unless it is "Set" to a dif ferent one.

DIMMING AND SETTING

Page 21: Getting started with Microsoft Excel Macros

An Excel program or "macro" consists of a "Subroutine“. Excel only recognizes the Sub ___() as the entry point to any

VBA application. Every Sub must end with an End Sub. You’ll add your code in-between the subs

MACRO BASICS

Page 22: Getting started with Microsoft Excel Macros

To create your first custom macro: Use the shortcut Alt+F8 Type in a new macro name “Test” Click “Create” to launch the macro editor Add the following code between the subs: Msgbox “Hello world.” Click the play button and a message box with the words “Hello

world.” should pop up in front of your spreadsheet.

Option Explicit Sub Main() MsgBox “Hello world.” End Sub

CREATE A MSGBOX MACRO

Page 23: Getting started with Microsoft Excel Macros

How often do you find yourself emailing a spreadsheet once you’ve completed it? Eliminate the extra step of opening email, attaching a documents, etc. by sending the spreadsheet directly from Excel via a macro. Here’s an example:

Sub Email() ActiveWorkbook.SendMail recipients:="[email protected]" End Sub

EXAMPLE: EMAIL WORKBOOK

Page 24: Getting started with Microsoft Excel Macros

Sometimes you may want to close all fi les without saving. Doing it manually is a hassle with all the "Do you wanna save?" question pop ups. Here is a simple macro to close all fi les automatically: Sub CloseAll() Application.DisplayAler ts = False myTotal = Workbooks.Count For i = 1 To myTotal ActiveWorkbook.Close Next i End Sub

EXAMPLE: CLOSE ALL OPEN WORKBOOKS

Page 25: Getting started with Microsoft Excel Macros

Syntax is often the most frequent cause of a macro program not working and throwing an error. Excel’s VBA editor contains a built-in syntax checker and works much like a grammar checker found in software like Microsoft Word and will even give you hints about what it thinks you meant.

One of the best ways to learn about macros is by looking at and using code that others have written and is proven to work

Use the internet to ask questions: Eng Tips, StackoverFlow, Mr Excel Forum, Contact Me

TROUBLESHOOTING

Page 26: Getting started with Microsoft Excel Macros

Want to learn even more about Excel macros and other tips?

Page 27: Getting started with Microsoft Excel Macros

.

CLICK HERE TO SIGNUP FOR FREE!

Join the Excel Spreadsheets Help newsletter to receive Excel tips

right in your inbox.