100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Your First VBA Macro

Write, run, and debug your very first macro: set up the Developer tab, add a module, greet the user with MsgBox, write to a cell, and step through the code.

FoundationsBeginner9 min readJul 10, 2026
Analogies

Your First VBA Macro

Writing your first macro means creating a Sub procedure in a module, adding a line or two of code, and running it. The classic starting point is a message box that greets the user, followed by writing a value into a cell. This small exercise teaches the full development loop: write the code, run it, observe the result, and debug anything that goes wrong.

🏏

Cricket analogy: Your first macro is like facing your first delivery in the nets: a simple defensive block (MsgBox) before you attempt lofted drives, learning the write-run-observe rhythm one ball at a time.

Setting Up: The Developer Tab and Modules

Before coding, enable the Developer tab via File > Options > Customize Ribbon, which exposes the Visual Basic, Macros, and Macro Security buttons. In the VBE, insert a standard module with Insert > Module; general macros belong in modules, not behind worksheets. Finally, save the workbook in the macro-enabled .xlsm format, or the code will be discarded when the file is closed.

🏏

Cricket analogy: Enabling the Developer tab is like unlocking the pavilion gate before you can walk out to bat: without that access, all the practice equipment (the VBE tools) stays locked away.

Writing a Hello World Macro

A basic macro uses MsgBox "Hello, World!" to pop up a dialog, then Range("A1").Value = "Hello from VBA" to write text into a cell. You give the Sub a descriptive name such as SayHello and wrap the statements between Sub SayHello() and End Sub. This tiny program demonstrates interacting with both the user, through the message box, and the worksheet, through the cell.

🏏

Cricket analogy: MsgBox is like the umpire signalling to the crowd, a clear public message everyone sees, while writing to Range("A1") is like updating the scoreboard, quietly recording the result in its fixed place.

vba
Sub SayHello()
    ' 1. Talk to the user with a message box
    MsgBox "Hello, World!", vbInformation, "My First Macro"

    ' 2. Write a value into cell A1 of the active sheet
    Range("A1").Value = "Hello from VBA"

    ' 3. Prove it with a quick calculation in the Immediate window
    Debug.Print "2 + 2 = " & (2 + 2)
End Sub

MsgBox is also a function: you can capture which button the user clicked, for example answer = MsgBox("Continue?", vbYesNo). When you want a return value you must wrap the arguments in parentheses; when you just display a message and ignore the result, parentheses are optional.

Running and Debugging Your Macro

You can run a macro by pressing F5 in the VBE, choosing it from the Macros dialog (Alt+F8), or assigning it to a button on the worksheet. To debug, step through line by line with F8, set breakpoints by clicking the grey margin or pressing F9, and inspect values by hovering over a variable or using Debug.Print in the Immediate window. When an error occurs, VBA shows a dialog offering to Debug or End.

🏏

Cricket analogy: Stepping through with F8 is like watching a dismissal in ultra slow-motion frame by frame: pausing at each delivery to spot exactly where the batsman edged it, just as breakpoints halt code at the suspect line.

If you save as the ordinary .xlsx format, Excel silently strips out all VBA code on save. Always choose 'Excel Macro-Enabled Workbook (*.xlsm)'. Also, when a macro halts on an error and you click Debug, the code enters Break mode; press F5 to continue or the reset (square) button to stop before editing.

  • Enable the Developer tab via File > Options > Customize Ribbon to reveal the VBA tools.
  • Insert a standard module (Insert > Module) to hold general-purpose macros.
  • A basic macro uses MsgBox to talk to the user and Range("A1").Value to write to a cell.
  • Name Subs descriptively and wrap statements between Sub Name() and End Sub.
  • Run macros with F5 in the VBE, the Macros dialog (Alt+F8), or a worksheet button.
  • Debug by stepping with F8, setting breakpoints with F9, and printing with Debug.Print in the Immediate window.
  • Save as .xlsm (Macro-Enabled Workbook), or Excel discards all your code.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#VBAStudyNotes#YourFirstVBAMacro#VBA#Macro#Setting#Developer#StudyNotes#SkillVeris#ExamPrep