My Top 10 Tips for Mastering VBA & Excel Macros [Part 5 of 5 – VBA Crash Course]

Share

Facebook
Twitter
LinkedIn

This article is part of our VBA Crash Course. Please read the rest of the articles in this series by clicking below links.

Top 10 Tips for Mastering VBA, Excel Macros - from Chandoo.org

  1. What is VBA & Writing your First VBA Macro in Excel
  2. Understanding Variables, Conditions & Loops in VBA
  3. Using Cells, Ranges & Other Objects in your Macros
  4. Putting it all together – Your First VBA Application using Excel
  5. My Top 10 Tips for Mastering VBA & Excel Macros

In the part 5 of our VBA Crash Course, let me share you my tips for mastering Excel VBA.

A warning before jumping in to the tips: I am not a VBA expert. I am a learner, just like you. I find VBA quite interesting language to learn and explore. These tips are based on what I have learned writing VBA (and VB code) in the last 12 years.

Tips for using & mastering VBA in short term:

#1 Think Thru before Coding

The best way to solve even a very complex problem is to think thru. Next time, when you are about to automate that report or clean some imported data using VBA, just write the logic down on a paper. See and understand various aspects of the problem. The solution becomes clear to you. It has worked for me and it works for you too.

Related: Building your First VBA Application using Excel

#2 Use the Recorder

Excel’s built in Macro recorder is a great way to learn about new objects and ways to deal with them. I use it all the time to record parts of my code and then customize the output. Just keep in mind that macro recorder does not produce the best or complete code all the time. But it gives you a damn good idea about how to write code for a set of actions.

Related: Introduction to Excel VBA & Writing your First Macro

#3 Use Immediate Window

Excel VBE has a powerful feature called as Immediate window. Think of this like a sandbox. You can write almost any VBA statements here and get quick results. For example, Open VBE (ALT+F11 in Excel) and go to Immediate window.

  1. Type ?Activecell.Value
  2. Press Enter
  3. And you will see the current cell’s value printed in immediate window

Here is a quick demo of immediate window.

Demo of Immediate Window - Excel VBA Crash Course

#4 Debug.Print is your Friend

There are 3 things you cannot avoid in life

  1. your 2 year old daughter thinking it would be fun to throw a stone on your car
  2. your baby boy running and sitting in your lap suddenly making the hot coffee spill on you
  3. and of course bugs in your code

Bug is a fancy name given to the situation when your code is not doing what it is supposed to do.

But why?!? Well, we don’t know why unless we examine. And this is where Debug.Print can come handy. In below example, you would see the values of all tasks in the immediate window as your program runs.

Example on Debug.Print in VBA

#5 There is a method for that!

Just like Apple says There is an App for that!, may be Microsoft should say There is a Method for that! about VBA. I say this because VBA comes with a lot of methods and functions to do lots of things. If you are thinking of writing your own code to reverse some text, split something based on a delimiter, find the intersection of 2 ranges or run something after 10 seconds, may be you should before writing your code. Because, my dear, there is a method for that.

Whenever you feel like you are writing code for a problem that is already solved several times, chances are there is some built-in method or object for that. So just search.

Tips for Using & Mastering VBA in Long-term

While the above tips are good for solving your immediate problems, we should always aim for continuous improvement. Here are my top tips for keeping your VBA in shape.

#6 Break Your Work in to Smaller Chunks

No matter how complex your work situation or problem might be, chances are, it is made up of several smaller problems. So break things in to smaller chunks. This coding technique is called as modularization. Modularization has several advantages:

  • Reuse: Once you break a big program to smaller parts, you can reuse a smaller part in several places or in other projects.
  • Testable: Smaller code fragments are easy to test and debug.
  • Maintainable: You can maintain smaller parts easily. You can upgrade them once you get a better version of Excel without breaking much.

#7 Build Iteratively

Rome is not built in one day, so is your buildRome() macro. Whenever you are attempting to automate a whole department’s work, take a step back and see what is the smallest (but most useful) feature you can have. Implement it and then add new features iteratively. That way, your turn-around time is improved, you look pretty in front of your boss and you feel in control of things.

Iterative development also lets you stop whenever you want and you would still have some working piece of code.

#8 Keep a Good Reference Handy

If you are going to use VBA quite often, then invest in a good reference. I suggest John Walkenbach’s Excel 2010 Power Programming if you are looking for one. Good reference books have lots of information and tips buried in them. For example, I keep Excel 2010 Power Programming book on my desk all the time and refer to it whenever I feel like not doing any work. I always learn something new.

#9 Take up Challenges

“Computers are like bicycles for our mind” said Steve Jobs. I am not sure if hours I put on facebook, twitter and gmail are keeping my mind fit. But any time I invest on programming is worth every second. I feel very sharp, excited and stoked when I solve a tricky problem using a computer program (be it VBA, an Excel Formula or php or anything else).

I think if you want to be good in VBA or Excel, then take up challenging work. Try to automate a report that you (or your team) produce using VBA, Try to simplify a formula or improve a chart.

If you are looking for fresh challenges, then look at our forums. We get dozens of interesting questions everyday.

#10 Use VBA only when you need it

Once you start learning VBA, it is natural to feel excited about the possibilities you have. But keep in mind that overusing it can complicate your work.

My suggestion: Use Excel’s native features as much as possible. Excel has several built in features to solve various day to day problems (conditional formatting, pivot tables, formulas, data validation, form controls to name a few). Only when you feel that there is no easy way to use Excel alone to solve a problem, go for VBA.

Example: Recently, I showed you all how to split text on new line using VBA. I did that because I thought there was no way to do it using Excel’s built in text-to-columns utility. Well, I was wrong. As Debra proved in the comments,

Chandoo, if you want to do this in the Text To Columns dialog box,

Select Delimited, then check “Other”
In the box beside Other, press the Alt key, and type (using the number keypad): 0010

That should separate the text on the line break character.

So if you feel like there is no way to do something in Excel without resorting to VBA, well, just keep looking, because there might be a way.

What are your Tips for Learning & Mastering VBA?

Its your turn now. What are your top tips for mastering VBA? Please share using comments because I and many of our readers want to learn. Go ahead and post.

Join Our VBA Classes

We run an online VBA (Macros) Class to make you awesome. This class offers 20+ hours of video content on all aspects of VBA – right from basics to advanced stuff. You can watch the lessons anytime and learn at your own pace. Each lesson offers a download workbook with sample code. If you are interested to learn VBA and become a master in it, please consider joining this course.

Click here to learn more and Join our VBA program.

Thanks

This post concludes our series on VBA Crash Course. I hope you enjoyed these 5 articles and learned something new. I really enjoyed writing this series. Thank you so much for your comments and support.

For more about VBA & Macros, consider enrolling in our online course.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

22 Responses to “Master Excel 2007 Ribbon with this Free Learning Guide”

  1. Finnur says:

    Thank you, kind sir. Well done with the baby making.

  2. doug churchill says:

    I cannot get signed up for your newsletter. I tied both this email address and churchill2001@hotmail.com. never a response.

  3. doug churchill says:

    I cannot get signed up for your newsletter. I tied both this email address and churchill2001_at_hotmail_dot_com. never a response for either attempt.

    • Chandoo says:

      @Doug, it shows that your email address is pending verification. Can you check your inbox (and may be spam folder too) for an email from me? The subject will be "Activate Subscription to Get your Free Excel Tips E-book"

  4. ajay says:

    Very Useful Info..Keep it up..

  5. Chandoo says:

    @Ajay.. you are welcome 🙂

  6. [...] Excel 2010 UI looks considerably better and less stressful than 2007. The colors are dull and subtle. The icons don’t call for attention unless you want to do something. The menus / ribbons feel smoother and slicker. [Learn to use Excel Ribbon with this Free e-Book] [...]

  7. Mark says:

    I can't open this pdf. I get the error message:

    You do not have the required license to open this file.

    Please request a license from the creator of the file, and add it using the license manager and they try opening it again.

    What gives??

  8. Mark says:

    I downloaded the file again and it worked this time. Strange. (First file was 116 KB, second was 1644 KB... ???)

  9. Michael says:

    Hi Chandoo,
    thanks for sharing your Excel 2007 learning experience with us; unfortunately the link to the pdf of the free Excel 2007 learning guide seems broken: my Acrobate Readers flags: "Unkown file type or corrupte data".
    Have a nice day
    Michael

  10. anja says:

    well done this is great

  11. Fabian says:

    Can somebody just provide a link the classic TAB exportedUI files for MS Office 2003 for us to use in office 2007/2010?. searching online, everybody just wnats to make a buck online with silly Classic Tab installers which do nothing more than inport exportedUI files for you.

    Don't give me a ribbon how to guide, just give me free exportedUI files. I should not have to pay anyone for this, it is free XML, MS should have included this to begin with.

  12. rocky says:

    thanks

  13. kartik says:

    Dear.
    There are a set of debit values and a set ot credit values in a column. I want a vba code by whcich the debit value plus a single / multiple credit value is zero that needs to be marked .
    finally i will come to know out of the avaibale debits which cannot be used the with avilable credits either single or multiple values.
    If multiple matching sets are available let it take the 1st or the 2nd one its not an issue.
    Column A Ref
    -1000 A
    -5000 B
    -8000 C
    800 A
    100 A
    100 A
    2000 B
    3000 B
    13000
    15000

  14. ridwan says:

    hi...
    how to make this add-ins and display in ribbon... check this sample : http://www.cprsoft.com/GCDemo01.htm
    thank you sir...
     

  15. Aleem Qamar says:

    Please tell me format painter short cut key In excel ?
    Thanks In Advance

  16. mano says:

    thankfully.likeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

  17. Gift Miag Mentor says:

    I am very much happy for such a great opportunity given to excel learners to advance their skills for the betterment of the future. I am a great user of this site and feel proud to have come across this web site.
    I appreciate this, because I didn't do much works in my project management studies using gantt chart. As of now are have now learned some advancement.

Leave a Reply