Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
This is an introductory course on how to program Excel using VBA macros. You will learn to automate and extend the Excel environment to supercharge your Excel models, automate routine tasks, customize your user interface, and manage large quantities of data. This course is based on the instructor's semester-long college courses which have produced thousands of graduates in the fields of business, finance, health care and public policy. Designed for busy professionals who need to take their Excel abilities to the next level, you will not waste time on topics which you are unlikely to use, and you will receive extra attention to the often confusing or overlooked details that will make the most difference to your ultimate understanding. Over 8 hours of instruction!
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
|Section 1: Introduction|
|A brief overview of this course. What VBA really is and how it can be used. Also, what prior knowledge is recommended and tips for getting the most out of the course.|
|An introduction to using the macro recorder, adding the Developer tab to the ribbon, and Absolute versus Relative recording modes. Also, saving macro-enabled workbooks, and macro security.|
|An introduction to the VBA editor window, moving back and forth between editor and workbook, and managing VBA projects.|
|Quiz 1||5 questions|
|This quiz covers the topics presented in Section 1.|
|Section 2: The Excel Object Library|
|A brief explanation of objects, properties and methods, and a look at the relationship between the VBA language and the Excel object library.|
|An example of using the macro recorder to set object properties. Further explanation of comments and an introduction to the WITH...END WITH construct.|
|An example of using the macro recorder to execute object methods, both with and without parameters, and an explanation of how named parameters work.|
|An explanation of the Application object and its properties, and how properties can contain other objects.|
|A look at the many different ways of referencing Range objects.|
|Manipulating ranges using some important Range properties that allow you to derive new Range objects based on existing Range objects.|
|A look at the different ways of referencing worksheet objects, most importantly, the Worksheets collection.|
|A look at the Workbooks collection, and other ways of referencing workbook objects.|
|Using Intellisense lists, the Object Browser, and VBA help to discover more about objects, and their associated properties and methods.|
|Quiz 2||5 questions|
This quiz covers the topics presented in Section 2.
|Section 3: The VBA Language|
|Using the MsgBox() and InputBox() VBA functions for simple macro input and output.|
|Declaring and using simple variables and enforcing variable declaration with Option Explicit. Also a short survey of the most common data types.|
|Using object type variables to reference and manipulate Excel objects.|
|How to use VBA and Excel worksheet functions in your macros.|
|How to create custom functions in VBA that can be called from your macros or from the worksheet.|
|Introduction to variations on IF...THEN, IF...THEN...ELSE and ELSEIF to perform conditional branching in your code. Also, combining logical conditions with AND.|
|Introduction to the SELECT...CASE statement as an alternative to ELSEIF. Also, using the Typename() VBA function to determine the data type of a property or variable, and combining logical conditions with OR.|
|Controlling program flow through repetition using 4 different variations of the Do...Loop.|
Controlling program flow through repetition using variations of the For...Next loop.
Controlling program flow through repetition using variations of the For...Each loop.
Understanding variable scope: local, module and global, and when each should be used. How to declare variables of different scope.
Trapping runtime errors in your code, and providing simple error handlers to report the error and gracefully exit.
This short project combines and reinforces some of the skills and techniques introduced so far in the course: looping, simple and object type variables, defining and passing parameters, and using important Range properties such as CurrentRegion and Resize.
|Quiz 3||5 questions|
|Section 4: Launching Macros: Events & Shortcuts|
A look at additional techniques you can use to launch macros, by attaching them to objects on the worksheet or modifying the Quick Access Toolbar.
Modifying the Ribbon by adding tabs and groups; attaching macros to the Ribbon.
Hooking into Workbook and Worksheet events to run code automatically in response to user actions.
Hooking into Application events to run code automatically in response to keyboard actions and system time.
|Quiz 4||5 questions|
|Section 5: Modifying the User Interface|
Exploring additional features of MsgBox, including modifying visual characteristics such as title bar, icon and buttons. How to test for user choices, OK/Cancel, Yes/No, etc...
Enhancing the Excel user interface by adding ActiveX controls to the worksheet, without using any code.
Presenting and gathering information through custom user forms: initializing controls, displaying and disposing of the form.
|Quiz 5||5 questions|
This quiz covers the topics presented in section 5.
|Section 6: What's Next?|
A simple example of cross-application programming: reaching into Word from Excel to insert a chart and create a series of documents.
Mark Talbert has been using Excel aggressively since version 1.0, and writing Excel macros both before and after the introduction of the VBA language. He has introduced several college-level courses over 15+ years on Excel modeling and VBA programming, which have together produced thousands of graduates who now work across a wide range of industries. His most frequent email subject line from former students is "Thank God I took your course!" followed closely by "I really wish I would have taken your course!"