Free online courseExcel VBA Programming Training Course for Beginners
Duration of the online course: 9 hours and 18 minutes
New
Free beginner Excel VBA course to automate spreadsheets with macros, loops, variables, input boxes, ranges, and error handling in real projects.
In this free course, learn about
Getting Started with the VBA Editor and Macros
Debugging Basics: Stepping and Breakpoints
Running Macros from Excel: Buttons, Shortcuts, and Shapes
Core VBA Concepts: Objects, Properties, Methods, and Help
Navigating Excel with VBA: Cells, Ranges, Sheets, and Workbooks
Decision Making in VBA: If, Select Case, and Logical Operators
Loops in VBA: Do Loops and While/Until
Variables, Scope, Parameters, and Functions
User Interaction: MsgBox and VBA InputBox
Advanced Input: Application.InputBox and Range Selection
Collections and Looping Through Excel Objects
Error Handling in VBA
Course Description
Excel VBA Programming Training Course for Beginners is a free online course designed to help you start automating spreadsheets with confidence. Built for complete beginners, it guides you from setting up the editor and writing your first procedures to running macros reliably and understanding what to do when things go wrong.
You will learn practical coding habits for working inside Excel, including stepping through code, using breakpoints, and saving and organizing your work. The course also shows how to trigger automation in real-world ways, such as using worksheet buttons, shapes, and keyboard shortcuts, so your solutions are easy to run and share.
As you progress, you will work with the Excel object model to select cells and ranges, move between worksheets and workbooks, and build dynamic selections using tools like End and Offset. You will also strengthen your programming fundamentals with decision making and logic, covering If structures, ElseIf, Select Case, and useful conditional functions, along with core looping patterns for repeating tasks efficiently.
The training explains variables and scope, introduces object variables, and demonstrates how to pass parameters into procedures and functions, including returning values and object references. You will practice creating interactive macros with message boxes and input boxes, capturing user choices, validating inputs, and preventing common type mismatch issues. Finally, you will learn to work with collections and ranges using For Next and For Each loops, and add robust error handling strategies to make your VBA code more stable and easier to troubleshoot.
Course content
Video class: Excel VBA Online Course - 1.1.1 Preparing to Write Code05m
Exercise: Which action creates the most common container used to store VBA code in an Excel workbook?
Video class: Excel VBA Online Course - 1.1.2 Writing a Basic Procedure11m
Video class: Excel VBA Online Course - 1.1.3 Saving Your Code04m
Exercise: Which file type should you choose to save a workbook that contains VBA code so the macros are kept?
Video class: Excel VBA Online Course - 1.1.4 Running a Procedure02m
Video class: Excel VBA Online Course - 1.1.5 Dealing with Problems08m
Exercise: Which type of VBA error occurs only when the code is actually running and can be investigated by clicking the Debug button to highlight the problem line in yellow?
Video class: Excel VBA Online Course - 1.2.1 Stepping Through Code05m
Video class: Excel VBA Online Course - 1.2.2 Using Breakpoints03m
Exercise: Which keyboard shortcut clears all breakpoints in the VBA editor?
Video class: Excel VBA Online Course - 1.3.1 Worksheet Buttons04m
Video class: Excel VBA Online Course - 1.3.2 Keyboard Shortcuts02m
Exercise: How do you start assigning a keyboard shortcut to a VBA subroutine in Excel?
Video class: Excel VBA Online Course - 1.3.3 Shapes as Buttons03m
Video class: Excel VBA Online Course - 1.4.1 Making Things Happen11m
Exercise: Which sentence structure correctly changes a property of an object in VBA?
Video class: Excel VBA Online Course - 1.4.2 Parameters and Arguments10m
Video class: Excel VBA Online Course - 1.4.3 Using Parentheses12m
Exercise: In VBA, when should you put parentheses around an argument list for a method?
Video class: Excel VBA Online Course - 1.4.4 Calling Procedures08m
Video class: Excel VBA Online Course - 1.4.5 Getting Help08m
Exercise: In the VBA editor, what is the quickest way to open the help page for the keyword your cursor is on (e.g., Cells.Find)?
Video class: Excel VBA Online Course - 1.4.6 The With Statement03m
Video class: Excel VBA Online Course - 1.4.7 Recording Macros07m
Exercise: When starting to record a macro, which choice makes the macro available whenever Excel opens?
Video class: Excel VBA Online Course - 2.1.1 Selecting Single Cells06m
Video class: Excel VBA Online Course - 4.1.5 Public Variables06m
Exercise: After moving a subroutine into a different module, how can you make variables like WeightInKilograms, HeightInMeters, and BMI accessible to procedures in all modules?
Exercise: In an Excel VBA InputBox, which Type value forces the user to enter/select a valid cell reference (Range) instead of typing arbitrary text?
Video class: Excel VBA Online Course - 5.4.8 Returning a Range Object04m
Video class: Excel VBA Online Course - 6.1.1 Collections in Excel09m
Exercise: In VBA, what does using Workbooks.Count return?
Video class: Excel VBA Online Course - 6.1.2 Referring to Objects by Name08m
Video class: Excel VBA Online Course - 6.1.3 Referring to Objects by Number07m
Exercise: In VBA, what does Worksheets(3) refer to in a workbook?
Video class: Excel VBA Online Course - 6.2.1 Basic For Next Loops06m
Video class: Excel VBA Online Course - 6.2.2 Counting Through a Collection04m
Exercise: Which VBA technique lets you modify every chart in a workbook without repeating the same code for each one?
Video class: Excel VBA Online Course - 6.2.3 Counting Through Cells09m
Video class: Excel VBA Online Course - 6.3.1 Basic For Each Loops06m
Exercise: In a VBA For Each loop that processes every worksheet in the current workbook, which statement correctly specifies the collection to loop through?
Video class: Excel VBA Online Course - 6.3.2 Looping Through a Range05m
Video class: Excel VBA Online Course - 6.3.3 Nesting For Each Loops04m
Exercise: Why is the range referenced as WS.Range("A2:A5") inside the loop?
Video class: Excel VBA Online Course - 7.1.1 Ignoring Errors03m
Video class: Excel VBA Online Course - 7.1.2 Disabling an Error Handler05m
Exercise: How can you disable a custom error handler after ignoring a specific error in VBA?