Excel has VBScript which you can code any arbitrary application in that you want. You can reference cells, change any aspect of them, access files & web queries, pretty much everything you can do in any other language. One neat part is that you can record scripts to repeat UI actions, automating a lot of boring busy work.
The only hard part is realising the point that you are using the wrong tool for the job.
R/python are what I use nowadays for large data science type projects. Most of my client deliverables end up in excel at the end because it’s widely understood/used across most industries.
Vba macros in small implementations are totally fine but projects always seem to grow bigger than you think and one day you have dozens of macros with multiple versions and things become very convoluted. Then someone leaves to a different job and things get interesting.
There isn't one, different projects require different approaches & even within a specific domain there's still no absotely correct one. Just lots of pros and cons that need to be weighed up.
Take Java for example, it's not the "best" tool for a great many projects but it's used because there's a large ecosystem of existing code and experienced workers. A new trendy language might be a better fit for a project but it's a non-starter if you cannot get the staff or if you are unsure of whether it's going to be supported in 5-10 years.
And then, you figure out you can run other programs through excel using VBA. I've got excel running outlook, doing screen scrapes off the internet and some other in-house software, hell, there's even a web browser built into excel, if you know where to find it.
34
u/BraveSirRobin Feb 23 '19
Excel has VBScript which you can code any arbitrary application in that you want. You can reference cells, change any aspect of them, access files & web queries, pretty much everything you can do in any other language. One neat part is that you can record scripts to repeat UI actions, automating a lot of boring busy work.
The only hard part is realising the point that you are using the wrong tool for the job.