fx Automation

Macro Recorder & VBA Basics

90 min7 lessons21 quiz questions

Practice file

⬇ Download automation-practice.zip

Automation practice bundle

One ZIP serves all seven modules. It contains a generated, macro-free automation-practice.xlsx, bilingual solutions, three intentionally messy CSVs, Python report/email/pipeline scripts, requirements, a Windows launcher, a sample GitHub Actions workflow, and a README. No credentials or executable VBA are embedded.

The workbook contains Read Me, ROI, Data, Output, Sales, Products, Customers, Invoices, Statement, Orders, Rates, and Log. Data has 30 stock rows (15 reorder, 3 out of stock, total shortfall 45). Sales has 30 rows: North/South 8 each and East/West 7 each; three salespeople have 10 rows each. Five customer balances are 1200, 0, 800, 0, 500. Statement is an exercise template, not a completed statement.

The separate CSV project has 10 input rows: 7 valid unique, 2 rejected and 1 duplicate. Regional totals: South 96000, North 92000, West 61000; overall 249000. Rejected rows preserve original field values, including the literal NA amount.

Extract the ZIP and follow README.md to install the Python requirements and run the examples. Start with python pipeline.py --no-email using copies of the sample data. Desktop VBA, Outlook and xlwings exercises require the applications listed in their respective lessons. The bundle includes no credentials or enabled schedules.

Module quiz (21)

1. Which file type keeps macros?
.xlsm or .xlsb
2. Which recording mode makes a macro work "from where I am"?
Relative references
3. A macro file downloaded from email is blocked. How to allow it?
Properties → Unblock
4. Shortcut for the Immediate window?
Ctrl + G
5. Key to run one line at a time?
F8
6. Where should normal macros be written?
In a standard module
7. Clean version of Range("B2").Select + Selection.Value = 5?
Range("B2").Value = 5
8. Why is ActiveWindow.ScrollRow safe to delete?
It only records scrolling
9. Fastest way to copy values only?
Dest.Value = Source.Value
10. Best type for a row number?
Long
11. Keyword needed to assign a Worksheet variable?
Set
12. In Dim a, b As String, what type is a?
Variant
13. Cells(3, 4) is which cell?
D3
14. Range("B2").Offset(-1, 1)?
C1
15. Why .End(xlUp) from the bottom instead of .End(xlDown)?
Blank cells in between don't break it
16. Loop direction for deleting rows?
Bottom to top, Step -1
17. Loop type to go through every sheet?
For Each
18. What does a line starting with . inside With refer to?
The With object
19. Why does the template use a CleanExit label?
So settings are restored even after an error
20. Which setting stops the screen redrawing?
Application.ScreenUpdating = False
21. Fastest way to process 50,000 rows?
Read into an array, process, write back once
Macro Recorder & VBA Basics · Automation | ExcelWalaa