VBA is one of the best languages and environments for beginners ever. Why using Python instead would give the beginner anything, is beyond me.
Here's a shortlist:
- VBA is case-insensitive. If you don't know the significance of this, you've never taught beginners
- VBA hides event binding and namespaces for the user. Major obstacles removed
- VBA has full autocomplete
- VBA has F1 context-sensitive help
- VBA automatically formats and indents your code
- VBA is more verbose, and verbosity aids comprehension
- VBA finishes most of what you type, so you don't actually have to type much more than in Python
- VBA was designed for Excel, and vice versa. The object models fit
- There's tons of online resources for using VBA in Excel
And finally, VBA is dead-easy to learn, even for Microsoft-hating open source hackers. You just have to learn to get over yourself.
With the same argument you would easily arrive to the conclusion that the best way to learn grammar is a spell checker.
Actually it depends, if those beginners are supposed to become programmers then you're wrong, if they just want to write one piece of software once in their life and never do it again then maybe you're right.
An important part of teaching a beginner is making sure they don't get bored or frustrated. Their first language may not give them all the experience they'll need down the road, and may not be something they'll ever use again, but what you need is something that's not frustrating and gives them the idea that they themselves can actually make something. Spark the interest, and they'll want to press on.
I think statically typed languages are generally easier for people less experienced with debugging, too. It's much easier to have your editor blinking "THIS LINE IS WRONG" than to try to make sense of a stack trace after the fact.
Here's a shortlist:
- VBA is case-insensitive. If you don't know the significance of this, you've never taught beginners - VBA hides event binding and namespaces for the user. Major obstacles removed - VBA has full autocomplete - VBA has F1 context-sensitive help - VBA automatically formats and indents your code - VBA is more verbose, and verbosity aids comprehension - VBA finishes most of what you type, so you don't actually have to type much more than in Python - VBA was designed for Excel, and vice versa. The object models fit - There's tons of online resources for using VBA in Excel
And finally, VBA is dead-easy to learn, even for Microsoft-hating open source hackers. You just have to learn to get over yourself.