These Excel VBA tutorials and blog posts will teach you everything you need to know about Excel VBA. Chapter 1 starts with VBA basics and each subsequent chapter introduces you to more advanced topics. The complementary blog posts and series articles will walk you through reallife applications of Excel VBA.
VBA Topics
Basics 
ActiveX and Form Controls 
VBA Code Library 
UDFs 
Strings 
File I/O 
Q&A 
Data Type Conversions 
UserForms 
Arrays 
Math 
VBA Shell Macros 
Community Submissions 
More Articles 
Resources
Excel VBA Tutorials
Chapter 1: Getting StartedChapter 2: Getting Around
Chapter 3: Variables and Data Types
For more essential VBA tips, grab a copy of our VBA Fundamentals Cheat Sheet. It contains 30+ practical tips covering 25 fundamental VBA topics. It also crams in over 20 helpful macros that are great for beginners!
 How to Populate ComboBox on VBA Userforms
 VBA Show Userform with Show Method
 VBA Fade Userform In and Out
 Beautiful VBA Progress Bar with Step by Step Instructions
 Transparent UserForm Background with VBA
 Align Columns Differently in VBA UserForm ListBox
 Remove Window Border Title Bar around UserForm with VBA
 ShowModal VBA vbModal and vbModeless
 VBA Close UserForm with Unload Me
 Perform Integer Division with the VBA Backslash Operator
 VBA Quicksort macro to sort arrays fast
 VBA bubble sort macro to sort array
 VBA Absolute Value with Abs function
 Square Root in VBA with the Sqr Function
 The VBA Mod Operator Explained
 Powerful Excel Linear Interpolation Function with VBA
 Trapezoidal Rule Excel Function
 Faster Alternatives to VBA PageSetup
 A VBA UDF to Enhance Excel's CELL and INFO Functions
 Display Screen Size and Other Metrics with VBA UDF
 Play System Sounds and WAV Files With VBA PlaySound
 Check if folder exists, then create folder with VBA MkDir
 VBA  Remove Duplicates from Array
 Return Position of Element in VBA Array
 VBA Column Number to Letter
 Excel VBA Delete Blank Rows
 Find the Closest Number in a Range with this VBA UDF
 VBA Dir Function to Check if File Exists
 Match Value in Range to Same Position in Another Range
 Macro to Enable Trust Access to the VBA Project Object Model
 Use VBA to Mute, Unmute, Volume Up and Volume Down
 Convert Decimal Time to Hours Minutes Seconds with VBA
 Use VBA ShellExecute to Open URL in Default Browser
 VBA Beep Sound on Error
 VBA Count Files in Folder
 VBA Loop Through Files in Folder
 Check if Value is in Array using VBA
 VBA to Maximize Window in Left Monitor
 Open Folder using VBA and Show if Already Open
 Display VBA Save As Dialog with msoFileDialogSaveAs
 Open Files with VBA FileDialog msoFileDialogOpen
 Read and Write to a Text File with VBA OpenTextFile
 Create Text File with FSO and VBA CreateTextFile
 VBA Select Files with msoFileDialogFilePicker
 VBA Copy a file with FSO CopyFile
 List Files in Folder and Subfolders with VBA FileSystemObject
 Introduction to the VBA FileSystemObject
 Get Filename with VBA GetOpenFilename
 Check if folder exists, then create folder with VBA MkDir
 VBA Dir Function to Check if File Exists
 VBA FreeFile for Foolproof File IO
 VBA Write to Text File with Print Statement
 VBA Select Folder with msoFileDialogFolderPicker
 VBA Count Files in Folder
 VBA Loop Through Files in Folder
 Extract URLs and Folder Paths with VBA InStrRev
 Q&A: Moving Files, AverageIf Hidden and Protecting Sheets
 Extract URL from a hyperlink in Excel with VBA
 VBA Compare Two Lists and Show Missing Values
 VBA Paste Values in Excel with Keyboard Shortcut
 Application.CalculationState to wait until formulas are done calculating
 Excel Change Negative to Positive and Positive to Negative with VBA
 Change VBA MsgBox text color with SetSysColors
 Speed up VBA Macro with These Subroutines
 Extract the Decimal Part of a Number with Excel VBA
 Using the VBA Array Filter Function
 Reverse order of an array with VBA
 VBA Quicksort macro to sort arrays fast
 VBA bubble sort macro to sort array
 VBA  Remove Duplicates from Array
 Return Position of Element in VBA Array
 Excel VBA Assign Range to Array
 Declare VBA Array of Strings using Split
 Dynamic Array with ReDim Preserve VBA
 Check if Value is in Array using VBA
 Loop through Array with VBA UBound
 A VBA UDF to Enhance Excel's CELL and INFO Functions
 Display Screen Size and Other Metrics with VBA UDF
 Play System Sounds and WAV Files With VBA PlaySound
 How to create VBA User Defined Functions in Excel
 VBA MacroOptions to Add UDF Description
 Return Position of Element in VBA Array
 VBA Column Number to Letter
 Find the Closest Number in a Range with this VBA UDF
 Compare Cells with this Excel VBA Function
 Powerful Excel Linear Interpolation Function with VBA
 VBA String Functions and how to use them
 VBA Regex Regular Expressions Guide
 VBA Concatenate Strings with Ampersand Operator
 3 Ways to Remove Multiple Spaces in a String with VBA
 Declare VBA Array of Strings using Split
 Extract VBA Substring with Mid Function
 Improve VBA RTrim to Remove Trailing Spaces in Excel
 VBA StrReverse to Reverse the Order of a String in Excel
 Easily Extract Text Between Two Strings with VBA
 VBA Replace Function to Replace Characters in a String
 Replace Nth Occurrence of a Substring in a String with VBA
 Extract URLs and Folder Paths with VBA InStrRev
 Use VBA InStr to Test if String Contains Substring
 Use VBA CStr to Convert Number to String
 Unicode, Decimal, ASCII and more with VBA StrConv
 Use StrComp VBA to Compare Strings
The best free VBA training on the web
I see people struggling with Excel every day and I want to help. That's why I'm giving away my VBA Developer's Kit for free to our newest subscribers.
Complete List of Excel VBA Blog Posts

VBA to Sort a Column and Sort Multiple Columns

Send an email through Gmail using VBA

Manual Calculations in Excel VBA

VBA MsgBox Yes No Options

VBA IsNull to Trap Errors and Find Unfilled Values

Find and Replace Cells with VBA

Hiding Sheets with VBA xlSheetHidden and xlSheetVeryHidden

How to Delete Columns with VBA

How to Hide and Unhide Columns with VBA

Faster Alternatives to VBA PageSetup

Refreshing Pivot Tables with VBA

Create and Manipulate Pivot Tables with VBA

Adjusting Dates with the VBA DateAdd Function

Using VBA ClearContents to Clear Cells in Excel

VBA Declare Constant with Const and Public Const

Check for Optional Parameters with VBA IsMissing

VBA ByVal and ByRef  Passing Variables

A VBA UDF to Enhance Excel's CELL and INFO Functions

VBA HTTP POST Requests with Google Forms Demo

Display Screen Size and Other Metrics with VBA UDF

Create Custom Button Labels for a VBA MsgBox

VBA HTTP GET Requests with API and ServerXMLHTTP60

Play System Sounds and WAV Files With VBA PlaySound

How to Undo a Macro with VBA OnUndo and OnRepeat

Schedule a Macro with VBA Application.OnTime

Use VBA Union to Combine Ranges

List All Environment Variables with VBA Environ

How to Make Custom Ribbons in Excel VBA

Display VBA Save As Dialog with msoFileDialogSaveAs

Open Files with VBA FileDialog msoFileDialogOpen

Creating Advanced VBA Scatter Plots

Extract URL from a hyperlink in Excel with VBA

Automatically Create Excel Charts with VBA

Download Files with VBA URLDownloadToFile

VBA Web Scraping with GetElementsByTagName

Using the VBA Immediate Window

Using the VBA Array Filter Function

VBA Event Handling: Excel Workbook Events

The VBA Collection Object

VBA Format Date with these Format Codes

VBA Transpose to switch rows and columns

Format Numbers with VBA NumberFormat

How to create VBA User Defined Functions in Excel

VBA String Functions and how to use them

Read and Write to a Text File with VBA OpenTextFile

Create Text File with FSO and VBA CreateTextFile

VBA Switch and VBA Select Case

Excel VBA Dictionary Keys and Items

Excel VBA AutoFilter to Filter Data Table

VBA Regex Regular Expressions Guide

VBA PasteSpecial Values, Formats, Formulas and more

VBA Select Files with msoFileDialogFilePicker

Using Excel VBA to Send Emails with Attachments

VBA DoEvents and when to use it

VBA Send Email from Excel

VBA Copy a file with FSO CopyFile

How to Populate ComboBox on VBA Userforms

List Files in Folder and Subfolders with VBA FileSystemObject

VBA Show Userform with Show Method

Introduction to the VBA FileSystemObject

Get Filename with VBA GetOpenFilename

Use Application.InputBox to prompt for VBA User Input

VBA Concatenate Strings with Ampersand Operator

VBA Compare Two Lists and Show Missing Values

VBA Fade Userform In and Out

Perform Integer Division with the VBA Backslash Operator

Reverse order of an array with VBA

VBA Quicksort macro to sort arrays fast

VBA bubble sort macro to sort array

VBA Absolute Value with Abs function

Square Root in VBA with the Sqr Function

VBA Paste Values in Excel with Keyboard Shortcut

Find out who has Excel file locked for editing

Excel VBA stop macro execution manually with Esc or Ctrl+Break

VBA Application.Wait to Pause for Specific Time

Application.CalculationState to wait until formulas are done calculating

The VBA Mod Operator Explained

Excel Change Negative to Positive and Positive to Negative with VBA

Use VBA Sleep to Add Time Delay to Macro

VBA Err.Raise and vbObjectError to raise custom errors

Check if folder exists, then create folder with VBA MkDir

Change VBA MsgBox text color with SetSysColors

Speed up VBA Macro with These Subroutines

Use VBA RemoveDuplicates to Remove Duplicate Rows from Column

3 Ways to Remove Multiple Spaces in a String with VBA

Extract the Decimal Part of a Number with Excel VBA

VBA Scroll with ScrollRow and ScrollColumn

VBA  Remove Duplicates from Array

VBA Comment Block of Lines

VBA Application.StatusBar to Mark Progress

VBA MacroOptions to Add UDF Description

Return Position of Element in VBA Array

Excel VBA Assign Range to Array

Beautiful VBA Progress Bar with Step by Step Instructions

VBA Column Number to Letter

Excel VBA Delete Blank Rows

Transparent UserForm Background with VBA

VBA RoundUp WorksheetFunction to Round Up

Find the Closest Number in a Range with this VBA UDF

VBA Random Number with Rnd and Randomize

What You Need to Know about the VBA Round Function

Align Columns Differently in VBA UserForm ListBox

How to Assign a Macro to a Shape in Excel

Show System Tray Notification Balloon when Macro is Done

VBA Dir Function to Check if File Exists

Match Value in Range to Same Position in Another Range

Remove Window Border Title Bar around UserForm with VBA

VBA to Only Allow Numbers in Cell or Range

Macro to Enable Trust Access to the VBA Project Object Model

Wait Until a Key is Pressed with GetAsyncKeyState VBA

VBA TextBox Numbers Only using Keypress KeyAscii

ShowModal VBA vbModal and vbModeless

Declare VBA Array of Strings using Split

Extract VBA Substring with Mid Function

PDF VBA Excel Addin

VBA FreeFile for Foolproof File IO

Loop Through the Alphabet with VBA Asc and VBA Chr

Improve VBA RTrim to Remove Trailing Spaces in Excel

VBA Write to Text File with Print Statement

VBA Close UserForm with Unload Me

Use VBA to Mute, Unmute, Volume Up and Volume Down

Dynamic Array with ReDim Preserve VBA

VBA Select Folder with msoFileDialogFolderPicker

VBA StrReverse to Reverse the Order of a String in Excel

Easily Extract Text Between Two Strings with VBA

VBA Replace Function to Replace Characters in a String

Replace Nth Occurrence of a Substring in a String with VBA

Make Excel Talk with Application.Speech.Speak VBA

Convert Decimal Time to Hours Minutes Seconds with VBA

Use VBA ShellExecute to Open URL in Default Browser

VBA Beep Sound on Error

VBA Count Files in Folder

VBA Loop Through Files in Folder

Mask your Password with this VBA InputBox

Show Color Palette Dialog Box with VBA xlDialogEditColor

Application Volatile VBA to Recalculate Function

Check if Value is in Array using VBA

How to Change Another Cell with a VBA Function

VBA to Maximize Window in Left Monitor

Open Folder using VBA and Show if Already Open

Use IsEmpty VBA to Check if Cell is Blank

IsNumeric VBA Function Checks if Cell is a Number

Excel VBA Delete Sheet if it Exists

Loop through Array with VBA UBound

The Complete Guide to Excel VBA Form Control ListBoxes

Offset VBA Property to Navigate Excel

Compare Cells with this Excel VBA Function

Powerful Excel Linear Interpolation Function with VBA

Create an Awesome Excel Splash Screen For Your Spreadsheet

Extract URLs and Folder Paths with VBA InStrRev

The Complete Guide to Excel Form Control Option Button VBA

Q&A: VBA For Loop, Step by Nth Cell and Copy Ranges

Use VBA InStr to Test if String Contains Substring

Simulate a Button Click with Rectangle Shape

The Complete Guide to Excel VBA ActiveX Checkboxes

The Complete Guide to Excel VBA Form Control Checkboxes

Convert String to Date with VBA CDate

Two ways to activate a program with VBA if already open

Draw Excel Lines or Arrows Between Cells with VBA

Excel Advent Calendar Contest

Call VBA VLookup Function with Application.WorksheetFunction

Use VBA CStr to Convert Number to String

Convert String to Integer with VBA CInt

VBA ColorIndex Color Infographic

Unicode, Decimal, ASCII and more with VBA StrConv

Mouse To Macro Excel Addin

Get Cursor Position with a VBA Macro

Run Excel Macro Without Opening Excel

3 Ways to Call a Private Sub from Another Module

Q&A: Moving Files, AverageIf Hidden and Protecting Sheets

Move and Click your Mouse with a VBA Macro

Show Time in Excel Title Bar with Application.Caption

Use StrComp VBA to Compare Strings

Print All Charts in Excel Workbook

Application.ScreenUpdating = False

Compare Two Excel Columns for Differences

Find last row with VBA End(xlUp).Row

Trapezoidal Rule Excel Function
 Learn Excel Dashboards  If you want to discover how to make beautiful Excel dashboards, Brad Edgar is your man. He's a great resource for learning Excel dashboards and gaining efficiency with shortcuts, formulas and functions.
 The Spreadsheet Guru  Chris Newman shares Excel tips with the goal of turning you into your office's Spreadsheet Guru. Chris wants you to always ask the question, "Is there a better, faster, more accurate way to do this?" His website helps provide the answer.
 Trump Excel  If you're looking for a wide variety of creative tutorials and Excel tips, you'll find great content at Trump Excel. In addition to offering formula and charting guides, Sumit Bansal provides wonderful templates to get you started.
 Excel Champs  Puneet Gogia has a comprehensive website that provides useful tips & tricks for learning Excel formulas & functions, excel charts and macros. The website even includes a chaptered guide to VBA.
 Excel TV  Excel TV offers a unique and effective way to become better at Excel and BI technologies by featuring live interviews with Excel experts, spreadsheet tips, contests, panel discussions and community engagement.
Useful Excel Resources
Links from fellow Excel enthusiasts
The best free VBA training on the web
I see people struggling with Excel every day and I want to help. That's why I'm giving away my VBA Developer's Kit for free to our newest subscribers.