Update in 2021
It may not be VBA anyone but I still stand by my original advice:
Excel formulas, the world’s most popular programming language, is now Turing-complete. Go check it out! - Satya Nadella - Microsoft CEO
For the record, I’ve never written a Macro or VBA but I (think I) know that the capability is bundled with every version of Excel and if used well, can be extremely powerful.
The principle reason I made the recommendation is that for someone to self-teach themselves something, they must be passionate about the end product. If you are not, you will give up halfway and will have just wasted a vast amount of time. The OP is non-technical and will spend the next few years on the grad scheme of a FTSE 100 company. He will be sandboxed by corporate IT and I don’t believe he is interested enough in generic web or mobile development on his personal device.
I’m sure the company that the OP will work at will have the latest ERP/CRM/ECM SaaS products but the reality is someone somewhere will build a spreadsheet and send it to a colleague via email. So much corporate data and knowledge exists in spreadsheets and even if finance isn’t the OPs role at all, becoming a spreadsheet ninja will pay huge dividends. It’s also inevitable, as an intern/junior employee, they will be tasked with a highly repetitive boring task, which will involve a spreadsheet. Automating these tasks will look good or just give them some slack time they can use to catch up other tasks.
Note. I hate spreadsheets and email and have studied the ERP space in the past and would love to eradicate them.
What can VBA do? Honestly I’m not really sure. It can clearly be packaged as Macros and be initiated by triggers. I guess it can do everything a cell formula can do but in a procedural manner. You can build controls to build user interfaces to abstract away manipulating cells. I’ve seen spreadsheets in the wild that submit data to web services or wrap themselves in an email for sending. I’ve used add-ons such as Quandl for Excel, which although doesn’t provide VBA objects, can still be evaluated as formula in VBA. Excel can connect to databases and execute SQL.
I’m sure recommending VBA in 2018 isn’t the best start to a programming career but if the OP engages with “programming in general” and creates some “usable beasts [of a spreadsheet app]” [Ed. “spreadsheet app” - you’re joking right], instead of “trivial contrived exercises” they will be in a better position than someone that build a web/mobile app once. The terrible habits that they will pick up can be beaten out of them at a future date. Surely it’s better to have habits than no opinion at all.