Whenever I see the question on a forum ‘where can I learn VBA?’ I ask ‘why?’. I wrote about it here.
Just had this additional thought.
What one needs to learn is that Excel is a collection of Objects. (There is no racing car inside your gaming computer! Like I said here)You need to learn about the Excel Object Model. Not that much about the detail because you can look it up, and Excel’s Intellisense will guide you through it anyway when you begin to work with it.
But you need to understand that Excel is a collection of objects.
When you use a spreadsheet, you’re manipulating these objects manually.
When you program Excel, you’re manipulating them programmatically.
You can do that with many programming languages. Some of the common ones today are Python, R, .NET and of course VBA.
The advantage with VBA is, it is integrated with Excel and the Intellisense features means you don’t have to look up a reference to the object model of Excel. Excel will guide you. It is also easy to understand as it’s like English, and based on BASIC (Beginners All-Purpose Symbolic Instruction Code).
So, the primary thing you will be doing is MANIPULATING THE EXCEL OBJECT MODEL.
Understand that first.
What you think is ‘VBA’ is actually what Microsoft have programmed into the Excel Object Model. VBA is simply bringing out what’s ALREADY in Excel (but is inaccessible manually).
This is (my guess) 90% of Excel.
When only using Excel manually you’re only using 10% of the capability of Excel. (or even less)