
People often ask me, “Should I learn VBA or Python?” The honest answer is: it depends on where your boring task lives. Here is how I decide.
In this article
The quick decision table
| Your task mostly happens in… | Start with | Why |
|---|---|---|
| One or a few Excel workbooks | Excel VBA | Built in, no installs, works on locked-down office PCs |
| Many files, big data, or data cleaning | Python (pandas) | Handles millions of rows and hundreds of files easily |
| Moving between apps, email, folders, web forms | Power Automate | No-code, connects Microsoft 365 and desktop apps |
| SAP GUI screens | SAP GUI Scripting from VBA | Drives the SAP screens you already use |
| Oracle EPM / Essbase reports | Smart View + VBA | Refresh and format packs automatically |
| Databases and reporting systems | SQL | Ask the source for exactly the data you need |
Three questions before you automate anything
- How often? A task you do daily for 15 minutes costs about 60 hours a year. A task done twice a year may not be worth automating.
- Is it stable? If the input layout changes every month, fix the process first.
- Who runs it when you are on holiday? Write down the steps and keep the settings (dates, paths) in cells or a config file, not buried in code.
A learning path that works
- Record a macro, then clean it up — try the Macro Recorder tool to see how.
- Learn loops and “last row” in VBA — the VBA Playground walks through them.
- Learn enough SQL to filter and group — practise in the SQL Playground.
- Pick up Python when files get too big or too many for Excel.
💡 The best automation is often deleting a step nobody needs. Ask “what happens if we just stop doing this?” before writing any code.