Excel VBATutorial                     Tutorial on Excel macros


Excel VBA Macros

Excel Macros Table of Contents

Excel Visual Basic Editor

Excel Macros Vocabulary

Excel Userforms

Excel Consulting

Excel Tutorial on Macros

Email to excel-vba.com

Excel Macros (VBA)
For beginners, intermediate and advanced users

VBA is the programming language used within Excel to develop macros
It stands for Visual Basic for Applications

For users of Excel 2007:
Installing the Visual Basic Editor in Excel from your Office CD

Macros in Excel 2007 and 2010

Create and test your first Excel macro for FREE
Discover how powerful and simple macros can be

Table of Contents
for this website and
the downloadable course on Excel macros

Lesson 1: Visual Basic Editor (VBE) in Excel

The Visual Basic Editor is the user friendly program that you will use to talk with Excel. In it you can  create your VBA procedures (macros) and userforms. You will then be able to modify and test these components easily step by step in the VBE.

Lesson 2: The Project  Window in the Visual Basic Editor of Excel

The Project Window lists all your open projects with their sheets, modules and forms. In the Project Window you will  add modules and create forms. When you select one of the components its properties will show in the Properties Window and the VBA code that you have created for the selected component will appear in the Code Window.

Lesson 3: The Properties  Window in the Visual Basic Editor of Excel

The Properties Window shows you the properties of the object that is selected in the Project Window (sheet, module) or the properties of the control (command button, text box, list box, etc...) that is selected on the forms. You will use this window often  when you start developing forms (userforms).

Lesson 4: The Code  Window in the Visual Basic Editor of Excel

All the action happens in the Code Window. In this large window you or the Macro Recorder will write macros. You will also test and fine tune all your macros in the Code Window.

Lesson 5: Developing Macros in the VBE

In this lesson you will learn  how to  create a new VBA procedure. You will organize sets of sentences to tell Excel what to do. You can key them  in or copy/paste them from recorded macros, from one of your old macros or from the Internet where you will find millions of free macros.

Lesson 6: Testing  Macros in the VBE

When you develop macros in Excel you spend 20% of your time analyzing the project, 15% writing your VBA procedures and 65% testing and fine tuning them. Split your screen, use the F8* key and you can see what your procedure does in Excel step by step. Back up, correct and re-test.

Lesson 7: Excel Macro Recorder

The Macro Recorder is the best teacher and it will be a great assistant (writing code for you) even when you become an expert at programming in VBA. In this lesson  you will learn about the Macro Recorder and you will try it. You will also run and test the macro that you have recorded.

Lesson 8: Macros Help and Assistance

There is plenty of help and assistance available within Excel when you develop macros. As you have discovered in the previous lesson the Macro Recorder is a great teacher and assistant. In this lesson we investigate the two other sources of assistance within the Visual Basic Editor of Excel: the Help Files and the Object Browser.

Lesson 9: VBA Events

Once you have developed your macros you need to trigger them  so that they  start. The trigger is called an event. The most frequently used event is the click on a button. In this lesson you will learn how to add a button to your sheet and how to connect it to your macro. You will also learn how to start a macro by opening a workbook (also called spreadsheet or Excel file), by closing a workbook and even by changing the value of a cell.

Lesson 10: VBA Security and Protection

You cannot harm your computer with macros so be bold in experimenting with macros you will learn more and faster. In this lesson you will learn how to protect you code, your sheets and your workbooks.

Lesson 11: VBA Coding Tips

Assembling VBA words into sentences is called coding. Here are interesting tips to make things easier when you start coding.

Lesson 12: Dealing with Errors

VBA tells you immediately when the code that you have written is wrong.   When the logic is wrong or when the  user gives a wrong answer these errors need to be handled. In this lesson you will learn the necessary vocabulary to deal with errors.

Lesson 13: Working with  the Application

The Application is EXCEL itself. Add  15 new VBA words to your vocabulary like Application.Quit, Application.ScreenUpdating = False, Application.CutCopyMode=False and others .

Lesson 14: Working with  the Workbooks

Some people call them spreadsheets or Excel files VBA calls them workbooks. Here are other VBA words to add to your vocabulary. You will learn  to work with ThisWorkbook (the workbook in which runs the macro) with many workbooks and even with all the workbooks in a directory.

Lesson 15: Working with  the Worksheets

There can be 256 sheets  in a single workbook. In this lesson you will discover  the vocabulary to move from one to the other, to copy/paste from one to the other, to add and delete worksheets and even go from the first to the last sheet of a workbook to do  something on all of them. You will also learn how to copy the sheets into another workbooks or to transform a single sheet into a workbook.

Lesson 16: Moving Around the Worksheet

In this lesson you will improve your VBA vocabulary with 40 some words to work within the worksheet. You will learn how to select a cell or a group of cells and  how to count the rows and columns. You will learn how to change the value of a cell or insert a formula in it. The 5  VBA words that you will use the most moving around the sheets are Range, Select, Offset, Activecell and CurrentRegion. What you can do with these  5 words and tens of other important words is  covered in this lesson.

Lesson 17: Working with  Message and Input Boxes

You will  use message boxes or input boxes to communicate with the user. Through these pop-ups  the user can supply bits of data or say " Yes, No, Ok, Cancel" and other short answers during the execution of a macro.

Lesson 18: Excel VBA Vocabulary to Filter and Sort Data

Excel offers you the most powerful database tools (sorting, filtering, etc...). With VBA these tools become even more powerful. You will learn how to use them with the data that you extract from large centralized databases (SAP, Oracle, EssBase, Access, etc..),  from accounting and sales programs and  with financial data  that you can download from the Internet.

Lesson 19: Working with  Variables

The variable is the concept that will launch your creativity and allow you to develop real programs in Excel.  It will empower you to develop sophisticated programs and work extremely rapidly with very large sets of data. Before learning about variables you develop macros after you develop programs.

Lesson 20: Working with  Statements

They are the KILL, the IF_THEN_ELSE_END IF, the SELECT-CASE, the DO_LOOP, the FOR_NEXT....

Lesson 21: Working with  Functions

There are Excel functions and VBA functions. Three topics are covered in this lesson. You can use existing Excel functions within  VBA or you can create brand new Excel functions with VBA and  you can use VBA functions.

Lesson 22: Working with  external data and SQL

When you connect to outside sources of data (large databases, text files, other Excel workbooks,  Access, etc.) the computer    is using SQL (Structured Query Language) a specialized language to work with data. You can use Excel's functionalities to connect and extract data but you can also use directly the SQL language top extract data.  It is the  fastest way to access any external data.

Lesson 23: Working with  Windows and  other Microsoft Programs FROM Excel

With VBA for Excel you can develop VBA procedures (macros) to work within Excel while calling  other Microsoft programs like Access, Notepad, Word, Project and even Windows.

Lesson 24: Forms (Userforms) in VBA for Excel

You have used message boxes and input boxes to communicate with the user while the macro was  running.  When these tools are no longer sufficient you need to develop useforms.

Lesson 25: Userforms Properties and VBA Code

In this lesson you will learn how to set the properties of the userform and you will develop code within the two important events that are " On Activate" and " On Close" .

Lesson 26: Properties and VBA code for Command Buttons

The command button is the control where most of the code resides and everything happens when you   " CLICK " on it.

Lesson 27: Properties and VBA code for Labels

Labels are just labels. You use them to describe functions and to share information with the user.

Lesson 28: Properties and VBA code for Text Boxes

The user is now talking to you.There are very few  userforms without text boxes. Text boxex having been created to handle text you need to discover how to use them with numbers, percentages, currencies, etc.

Lesson 29: Properties and VBA code for Combo Boxes

The combo box is the ultimate control. It is a drop-down list and you will learn how to develop sets of combo boxes where the choices offered in the second combo box depend on the choice made in the first one. They are called cascading combo boxes.

Lesson 30: Properties and VBA code for List Boxes

You will develop list boxes when you want to allow the user the possibility of multiple choices.

Lesson 31: Properties and VBA code for Check Boxes, Option Buttons and Frames

The " True/False" controls to be used as a group within a frame

Lesson 32: Properties and VBA code for Spin Buttons

You can test different values increasing them step by step until you find the right one and you do it with a spin button.

Lesson 33: Excel Image Controls

They are the controls to build catalogs and shopping carts.


VBA Macros in Excel 2007

Up to Excel 2007 you didn't need to install the Visual Basic Editor if you wanted to develop macros (VBA procedures). In  Excel 2007  you must specify that VBA be installed when you install Excel from the Office CD. See how to install Visual Basic for Application for Excel 2007.

In Excel 2010 this problem has been corrected and you do not need to install anything extra to work with macros. YOu might have to make the "Developer" ribbon visible by right clicking on the "Home" item of the menu bar and  then selecting "Customize the ribbon..." and making sure that the "Developer" ribbon is checked.

In Excel 2007 and 2010 you save your spreadsheets that do not contain macros in .xlsx format and those with macros in .xlsm format. You can also select to save your spreadsheets in .xls format so that people who have not migrated to Excel 2007 or 2010 can open and use them.

All macros and VBA procedures developed in Excel 1997 to 2003  will work in Excel 2007 and 2010 except for a few minor changes:

- a function used only by advanced users " FileSearch" does not exist anymore. It can be easily replaced by " Dir" that runs in Excel 2007, 2010 and in earlier versions of Excel.

- Advanced users of Excel 2007 and 2010 who import external data with or without SQL might want to  add these two lines of code at the end of the refresh process:
ActiveSheet.ListObjects(" YourQueryName" ).Unlink
ActiveSheet.ListObjects(" YourQueryName" ).Unlist

- Use the macro recorder to discover the new syntax to cells' background, font colors, filtering  and sorting data.

Nothing else has changed in Excel 2007 and 2010 as far as VBA and macros are  concerned.

The macro recorder and the Visual Basic Editor are the same.

Back to  the top of the page


Excel VBA Expert

The powerful functions, functionalities and macros that people used in Excel 1997 still work in Excel 2003, 2007 and 2010. Anything new that you learn about Excel will remain useful for years to come.

What has changed about theses functions, functionalities and macros is that they work much faster with every new version of Excel.

What has changed even more is the computer on your desk. It has changed dramatically.

- Your computer is hundreds of times faster and more powerful than in 1997.

- Your computer is also connected to multiple sources of data within your enterprise.

- Your computer is connected to data sources from around the world through the Internet.

Due to these changes to Excel, your computer and its network, Excel has become limitless as a data analysis and reporting program.



This website and the downloadable Tutorial on Excel Macros are divided in three sections:

Section 1: Excel Macros Programming: Lessons 1 to 10
This section is about recording, writing, modifying and testing macros in the Visual Basic Editor. You will also learn about security and discover "events" (an event is what starts the macro).

Section 2: Excel VBA Vocabulary: Lessons 11 to 23
Developing a macro is communicating with Excel and to do so you need to use a language called Visual Basic for Applications (VBA). In section 2 you will learn all the VBA vocabulary that is essential to work with business data (accounting, sales, production and others).

Section 3: Forms and Controls in VBA for Excel: Lessons 24 to 33
The userform is a small or large dialog window that you create and allows the user to submit values that will be used by your macros. To these userforms you will add controls (command buttons, text boxes, list boxes and others) and program them.

Rediscovering Excel's Functions and Formulas

Links to Other Resources on VBA


Excel Tutorial on Macros

Excel VBA Macros

Excel Macros Table of Contents

Excel Visual Basic Editor

Excel Userforms

Excel Userforms

Excel Consulting