These Excel VBA tutorials are designed to 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.
VBA Topics
Basics |
Error Handling |
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 Ultimate VBA Training Bundle. This cheat sheet set has over 200 practical tips covering the 125 most important topics in Excel VBA. We also stuffed it with 140 macro examples.
- 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
- How to use the VBA NPV Function
- 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
- How To Use VBA GetAttr To Gather File Information
- Using the VBA FileDateTime Function
- 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
- Use VBA Application.Caller to see how your macro was called
- 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
Code More, Distract Less: Support Our Ad-Free Site
You might have noticed we removed ads from our site - we hope this enhances your learning experience. To help sustain this, please take a look at our Ultimate VBA Training Bundle. Each purchase directly supports this site, ensuring we can continue to offer you quality, distraction-free tutorials.
Complete List of Excel VBA Blog Posts
-
How to Autofill Using Excel VBA
-
How to use the VBA NPV Function
-
FormulaR1C1 Makes Relative References in VBA Easy
-
Use VBA Range.Find to Search and Retrieve Data
-
VBA AdvancedFilter with Multiple Criteria
-
VBA Sgn Function to Check for Positive or Negative Numbers
-
How to Filter a Column with VBA AutoFilter
-
VBA Filter Unique Values with AdvancedFilter
-
VBA Insert Rows on Worksheets and Tables
-
How To Use VBA GetAttr To Gather File Information
-
Controlling Your Spreadsheet With VBA UsedRange
-
Using the VBA FileDateTime Function
-
VBA Export Charts as Images
-
VBA Err Object and Error Handling
-
VBA Error Handling with Resume Next, GoTo 0
-
VBA Error Handling with On Error GoTo
-
Use VBA SendKeys to send keystrokes anywhere
-
Use VBA Application.Caller to see how your macro was called
-
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 Add-in
-
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 Add-in
-
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
Code More, Distract Less: Support Our Ad-Free Site
You might have noticed we removed ads from our site - we hope this enhances your learning experience. To help sustain this, please take a look at our Ultimate VBA Training Bundle. Each purchase directly supports this site, ensuring we can continue to offer you quality, distraction-free tutorials.
- 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.