Actuarial Outpost

Actuarial Outpost (
-   Software & Technology (
-   -   Best way to learn VBA. (

Aussie101 10-23-2017 09:19 AM

Googling for a similar type file and Linkedin Learning
I found in my accounting role I had to upload 70 different cost centres budgets into SAP and it had to be in a separate worksheet with certain formatting and spacing. I found googling for a similar example and it worked.

I am learning process modelling using VBA on linkedin learning (linda campus) and Curt Fry is pretty good.

Philip_Trick 07-13-2018 07:43 PM


Originally Posted by actuary21c (Post 8272546)
C# is still my favourite language (having used all of Basic, Fortran, C, C++, VBA, Visual Basic,, Perl, Php, F#, Javascript and more recently Scratch and Python). I find it very neat and tidy and gives me full access to the very powerful .net framework. Having said that IronPython looks promising, but I like the fact that C# is strongly typed (so the compiler helps me a lot in my coding).

I have done lots of things in c#, in fact one of the most enjoyable aspects of my work as a software developer is the variety, here are a few from the last few years:

Program to partially convert VBA to C#
Program to partially convert Fortran to C#
Pensions valuation / cashflow projection software (see (NB currently for UK pensions, not US!)
Wealth planner (to help UK Independent Financial Advisors project cashflows and assets/liabilities for individuals, or numerate individuals to do that themselves) (
An online app to help parents and their children manage pocket money /learn to save by having virtual accounts (
An online time recording system (on the web, but only used internally at the moment)
An online accounting system for charities/membership organisations
Gratuity/Leave encashment valuation calculation software (for use in India an elsewhere)
Loads of websites

I could probably do all the above in Python (probably IronPython because I would want to use the .net framework).

For those thinking of just using VBA:
It would be very hard (if not impossible: eg to run a website) to do most of the above using VBA. (I know some of it IS possible, eg about 20-10 years ago most of the code I wrote had some VBA or Visual Basic for the front end, with C++ as the back end, but it is so much easier to do things using c# or another professional language).

PS: you mentioned data, and I realised I hadn't covered that aspect. I think most programming these days requires interaction with a database, data queries, manipulation and reporting, and again I found the .net framework (and particularly LINQ) very useful to do that.

I've started working in C# with VSTO and I don't think I'll go back to VBA to do anything more significant than a 5 minute macro again. The Document-level modifications are kind of ugly to work with and deploy but the Application-level modifications are like working in Excel with god-mode engaged.

I was able to take one of my VBA libraries, modify port it to C# (replacing vast quantities of code with LINQ), put some multi-threaded computations in there with the so-easy-to-use Parallel.ForEach, and knock one of my bigger VBA forecast programs down from a 2 hour process to under 5 minutes.

I don't think I will ever do any significant object-oriented programming in VBA ever again.

LINQ. Holy cow. Whoever devised and implemented that needs to be given a memorial statue for us plebs to give thanks at. It is simply amazing.

Then throw in Entity Framework Core and creating database computation add-ins for Excel has never been smoother. I also use custom MATLAB C# libraries which I used to access through COM-accessible wrappers in VBA through VSTO now.

VSTO seems like is the way to go, but the documentation can be rough sometimes.

All times are GMT -4. The time now is 05:47 PM.

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

Page generated in 0.17866 seconds with 9 queries