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.

39 Responses to “Some charts try to make you an April fool all the time (or why 3d pie charts are evil)”

  1. TheQ47 says:

    Another little trick they've used in that pie chart is in the positioning of the car sales in relation to each other. The way in which you present them in the column chart is from highest seller to lowest seller, left to right, which is what we're used to seeing. But in the dastardly pie chart, the two smallest selling cars (the SX4 and the Scala) are placed one either side of the Verna, which serves to make it look bigger again.
    Also the perspective at which you look at the pie chart makes the Verna look bigger. From my experimintation, a perspective of around 35-37 degrees makes it look like an even bigger slice, which appears to be what the advertiser has done.
    All of this manipulation would make you think of the "photoshopping" or "air-brushing" that is done on photos of models, film stars, and so on, in magazines, to give them the unattainable looks, skin, shape, etc., etc., that many aspire to, but can never reach.
    This post is quite the learning experience, thanks very much.

    • amanda says:

      please help!!!! im taking a computer class at SPC in clearwater. i have an excel worksheet to turn in and my pie charts are just blank no pie at all, all the other charts are working but i need #D pie chart can anyone help me to restore the 3D Pie chart??? Emergency

  2. David Onder says:

    This is a great example of why I do not like pie charts.  
    I promise to never make a 3d pie chart. If I ever see one, I promise to not rotate or explode it. I also promise to create alternative charts (usually column, bar, line or scatter plots) so that my audience can see the truth better.
    And oh yeah, I promise to bake & eat pies whenever possible. Apart from cakes, pastries, ice creams, biscuits and other assorted fun foods that is.
    signed David Onder

  3. kidakaka says:

    Reminds me of the quote ... statistics are like bikinis ... what they reveal is suggestive, what they conceal is vital.

    • KStilwill says:

      I love that Quote and you are so right, now to get the upper management to understand that!!!

  4. kidakaka says:

    Oh .. and wont it be awesome if u can create a quick decision tree tool for jo so that she can buy shoes :p ... perhaps link it to jabong.com or flipkart.com account and boom ... a spreadsheet shopping tool!

  5. There are a only two acceptable pie charts: actual pie and cheesecake. 

  6. Leon Kowalski says:

    My own commitment to the truth is to incorporate pereto graphs (Few, 2006) into most of my bar/column graphs.  The pereto is  activated by a non-printing check box form control.  This method has proven its worth on a number of occasions when presenting data and demonstrating its integrity when challenged - Also gets a kudos point from the boss for foresight, preparedness and professionalism :-).
     
    Leonk

  7. Luke M says:

    A little part of me dies inside whenever I see presentations from upper level technical management that includes exploded 3D pie charts.
    I promise to never make a 3d pie chart. If I ever see one, I promise to not rotate or explode it. I also promise to create alternative charts (usually column, bar, line or scatter plots) so that my audience can see the truth better.And oh yeah, I promise to bake & eat pies whenever possible. Apart from cakes, pastries, ice creams, biscuits and other assorted fun foods that is.signed Luke M

  8. PPH says:

    So if the goal is to mislead, 3-D pie charts are great.  There is a use for everything.

    • Avi says:

      Definitely agree with you. They did the appropriate thing as a marketing scheme. The chart is not "wrong" in any way, just misleading to the eye. 

      I think it's an excellent ploy.

  9. eagerpies says:

    I think these are an excellent display of the versatility of storytelling that is allowed by the champion of charts, the pie.  Great work Chandoo.  See my site for some further examples of effectively working with pie charts.  eagerpies.com

  10. Bryn Baker says:

    Well done Chandoo, all points clearly made; I'd add that there are lies, damned lies, statistics, pie charts and tweaked pie charts.
    I never recommend a pie chart but some of my custoners are so stupi are sure their requirements are correct. And the customer is always right (when he is the boss). So no pledge but lots of support.
    When I teach charts I ask what is the purpose of charts? Fairly sharp students talk about information over data. The purpose is to make better decisions happen. The accuracy is essential, the usability is essential, but the real gain is when the manager sees what to do to make the figures better.

  11. Bryn Baker says:

    Why do you have strikethru option in replies that is visble when editing but lost when posted? Of course is this does show a strikethru I must have got it wrong; let's see..

  12. Bryn Baker says:

    ... no thought not. Register aplea for strikethru to work. Thanks

  13. Kiev says:

    Hand on experience, thank you for sharing this.

  14. Meic Goodyear says:

    My favourite (if that's the right word) is Stve Jobs at

    http://www.myspace.com/crazyalaskandude/photos/30206354

    Some people must be assumed to know better, in which case it must be intentional.
    There's a classic book called How to Lie with Statistics, and another called How to Lie with Maps. Time for How to Lie with Charts?

  15. 5antiago says:

    A time and a place for everything, in my opinion. E.g. pie charts are good for communicating specific things to a wide and general audience, because everyone feels comfortable with the form at least.

    3D pie charts are good for giving the appearance of analysis to people who wouldn't read them anyway.

    In Excel, I use flattened 3D pie charts because they let me control the rotation of the chart to put the most important slices where I want them. That said, I don't use pie charts very often because my audience doesn't demand them

  16. SomeintPhia says:

    Sorry, but all kind of 3d stuff is horrible! Better, let's back a pie!

  17. SomeintPhia says:

    Sorry, but all kind of 3d chart stuff is horrible! Better, let's back a pie!

  18. Guest says:

    Call this the chandoo effect!!! Did u check out the same advertisement with a different type of chart in yesterdays newspapers??? Even the marketing managers listen to chandoo.

  19. Sarah says:

    I've always disliked pie charts for this reason and exploded 3d pie charts makes a liar out of their creators. its like the old man and his fish story.... I promise to never make a 3d pie chart (unless its as a joke). If I ever see one, I promise to not rotate or explode it. I also promise to create alternative charts (usually column, bar, line or scatter plots) so that my audience can see the truth better.
    And oh yeah, I promise to bake & eat pies whenever possible. Apart from cakes, pastries, ice creams, biscuits and other assorted fun foods that is.

  20. OberonViking says:

    I teach mathematics at high school, and this article will now feature as a regular teaching tool in the topic Misleading Graphs. Thank you.
    ...and along those lines, I realise I need to create more exploded 3D pie charts, more over-formatted graphs and more line graphs for categorical data to demonstrate poor graph choice.

  21. OberonViking says:

    ...and the staircase graph is even worse than the 3D pie chart. When you analyse it in terms of the amount of yellow on the graph compared to any other colour - particularly green which was second - it appears that Verna holds at least 50% market share.

    • OberonViking says:

      I ran through this graph as a lesson on Misuse of Graphs. We placed a 5mm grid over the image of the graph and counted the squares. The image is 58% yellow. This surprised the students because they were analysing the chart and interpreting it as about 40%. I remarked that the 58% yellow was influencing their judgement. It was a very good lesson.
      Thanks for this great teaching resource.

  22. For most practical reasons, I believe there is no need to use a 3D chart unless a Z-axis is needed for your data -- and pie charts need not be 3D since they don't need to show any axis!

  23. text the romance back review says:

    Your method of telling the whole thing in this paragraph is genuinely good, every one be capable of simply
    understand it, Thanks a lot.

  24. Matt Healy says:

    I agree about pie charts. I didn't recognize the name "Verna" so I had to Google it: Hyundai sells the same car in the US as the "Accent."

  25. Shadow Jam says:

    I cant stand 3d pie charts. 2d ones are bad enough. And im my opinion the staircase chart is even worse. Note that with the verna we see two sides which gives it a visible width on the page/screen about three times as wide as the second highest scoring one, where we can only see one side of it.

    However, I won't make the promise. Whilst I think acurate representation of stats is a morale obligation of those who need to present impartial data, you have to admire the marketing team for not missing a single trick.

    Unfortunately with slick charts with the lighting and 3d effects, it makes acurate flat charts look boring and unprofessional to the uniformed 90% who view style over substance.

    As an example of this, I was reading information packs from vendors, and out of the dozen or so, not a single one had flat charts....

  26. Alex says:

    Hi, Chandoo!
    Can we download some chart template like in your post? ))
    It is really pretty.

  27. […] Ah good day to my Tableau disciples. Peace be with you. May your day be free of exploding 3D pie charts… […]

  28. […] ovšem uvádí Chandoo, kolá?ové grafy lze naproti tomu dob?e využít k manipulaci. Linkovaný p?íklad s videem […]

  29. […] Even people who have the best of intentions create graphics that mislead just because they don’t know about statistics, they don’t know about logic, they about the principles of visualization. It’s not their fault, just like it was not my fault 10 or 15 years ago. Nobody had educated me. It was only through the process of reading books, studying, and learning from other people that I discovered the many mistakes that I’d made in the past, for example, creating 3D pie charts. […]

  30. Jon T says:

    I think if the point is to create BS, everything should be not only in 3d but in 4d!

    4d FTW

  31. […] makes it very difficult to visually compare data. A good example of how misleading a 3-D charts can be found here. Less is more. Make your visualizations as simple and clean as possible, it makes them much easier […]

Leave a Reply