Last Update: 2024 - 01 - 25
5 Reasons to Learn VBA Programming in 2022
by Philipp Stiefel, originally published 2022-04-15, last revision on 2022-04-15
Visual Basic for Applications, VBA, is a programming language included in Microsoft’s Office applications, such as Microsoft Word, Excel, Access, and Outlook and also in a couple of products from other vendors like Corel Draw and Autodesk AutoCAD.
It is known as “Macros” particularly in Excel and Word and can be used to automate processes and workflows in the documents of these applications. In combination with the built-In User Forms or in Microsoft Access, VBA can also be used to create complex custom applications with their own user interface.
As a user of Microsoft Office applications in a professional context it might be a good idea to familiarize yourself with the VBA programming language and learn how to use it to accomplish some programming tasks with it, even if you feel no desire to pursue a career in software development.
But is all this still relevant today? – Yes, absolutely!
VBA is certainly not the most modern programming language, but due to the huge prevalence of Microsoft Office it is still a very relevant language in the year 2022. Even though Microsoft introduced a new, modern Java Script API for Office Add-ins in the cloud at Microsoft 365, which has the advantage of running in the cloud, VBA still is vastly superior in the context of the desktop client applications. When local components, files, and processes outside of Office documents are involved is the prime choice for Microsoft Office automation. This will remain unchanged for the foreseeable future.
Now, let’s look at 5 reasons to learn VBA today.
1. Automate Recurring Processes
Does your daily work involve repetitive processes that you perform manually every day? E.g., you download a data file from a website, import the data into an Excel spreadsheet, run calculations in the sheet, then print the results to an PDF and email that to your team or your boss? – After a while you’re probably so familiar with the process that you can complete it in very few minutes.
What if you could do all the above in mere seconds by just clicking a single button?
VBA can be used to automate this process so that it can be run any time instantly and repeatedly. Some parts of the process can be easily recorded as a macro using the built-in macro recorder of Excel. Other parts will require some more advanced knowledge and manual coding (aka programming). But all of this can be automated with VBA in one way or the other.
If you have multiple such processes you need to perform regularly, VBA can save you a lot of time, which you then can direct to other more rewarding tasks.
2. Build Custom Applications
You can build whole applications in Microsoft Access. Of course, this has some overlap with automating processes in other Office applications. The difference between a custom application and a macro is primarily the user interface. An application has its own user interface which will be the primary or even only UI a user of the application interacts with, even if this custom application runs within the context of a Microsoft Office host application.
This user interface will guide the user and enable him to view and enter data and to run any number of automated processes working with that data. The users can generate and process Excel spreadsheets from a custom application running inside word, or they can send emails from a custom application running inside Microsoft Access. Particularly with Microsoft Access you can generate custom, data driven desktop applications that can compete well with applications created with other programming languages, such as the .Net language family, Pascal/Delphi, or C++.
Being able to create such applications enables you to support your department or even your whole business with tailor-made tools to structure, streamline and optimize lots if not all the daily work and processes.
3. Learn to Analyze and Design Processes
There is something else you will most likely learn “on the side” while learning programming. You’ll learn to analyze processes! This can (and most likely will) happen on multiple different levels. To automate any process, you first need to understand that process. What is its starting point? What are the inputs e.g., existing files and documents, user entered values, data in external systems? What are the results the process must produce? This can again be files, records in a database, an email, or a user action, like making a phone call.
Researching and analyzing the inputs and outputs of a process and determining what needs to happen in between to transform input to output will train your analytic skills. Very often, you’ll also need to understand an existing manual process. Why are things done the way they are done right now? Is this something your automation needs to reproduce or is there a better, more efficient way?
All this applies to a small individual sub-process, which will become a single macro or procedure in your VBA code. But you also need to think about how to combine, divide or link multiple of these smaller sub-processes to get the final desired result. In large custom application, there will be many of these processes that need to be designed and coordinated to work well together.
All this will give you a much deeper insight into what is going on in your business or in your department. Over time, you will also get much better in gathering, understanding, and using this information. With these skills, you can be even more valuable to your team than before.
4. Programming is a Valuable Skill on Your Resume
I understand you don’t want to be a programmer (yet). Otherwise, you would probably not be reading this. But even as an information worker, personal assistant, or in virtually every other office job that involves using Microsoft Office, having VBA skills will add value to your resume.
If I would hire for a non-programmer role in my business, someone with some basic programming skills would have better chances to get the job. The skills to understand and optimize processes are already a plus. Furthermore, even with manual tasks being the bulk of the job description, it would be helpful if the person filling the role would be able to identify the common denominator in frequent, recurring tasks and analyze these and then optimize them by automating them. – Yes, this employee would, at least partially, eliminate their own job. However, when they were successful with that, they would not be out of a job, but they would get a higher paid job thereafter.
I don’t know how many hiring managers will see the potential in this, but there will be some for sure. Even if it doesn’t help with getting a job, it certainly cannot hurt.
5. VBA Programming can be Fun!
But even before a programming task is completed, I enjoy the challenge (if it is one!). I like evaluating possible options to implement the desired functionality, to learn and understand new concepts and technologies. Despite the frustration that sometimes comes along interacting with a computer through code, this is a lot of fun to me.
Finally, I find it immensely satisfying to know a piece of my code is being executed and tasks being completed by it. This applies to code making my own work easier, as well as to code being used by the employees of my clients in their work.
Programming is not for everyone. However, if your job includes a lot of work with computer applications and you are generally happy with that, you should explore whether you like writing program code or not. If you are using Microsoft Office applications, learning a bit of VBA is the easiest starting point to tip your toes into computer programming.
If you enjoy coding and you want to learn VBA in more depth, my online course Learning VBA Programming will bring you to a whole new skill level.
I will never share your email with anyone. You can unsubscribe any time.
© 1999 - 2024 by Philipp Stiefel - Privacy Policiy