Best microsoft vba books according to redditors

We found 40 Reddit comments discussing the best microsoft vba books. We ranked the 14 resulting products by number of redditors who mentioned them. Here are the top 20.

Next page

Top Reddit comments about Microsoft VBA:

u/AsthmaticMechanic · 36 pointsr/AskEngineers

Excel 2003 Power Programming with VBA. Currently $4.94 on Amazon, though you might consider the latest edition. Got this when I was an undergrad, taught myself VBA and became an Excel "power user". Knowing VBA has been infinitely useful in my career and having it on my resume (along with projects and tools I've created with it) landed me my current job even though I wasn't even in the market at the time!

u/ButterflyBloodlust · 8 pointsr/excel

I highly recommend Excel 2013 Power Programming with VBA. Newer versions have a different author, who I'm not familiar with. Walkenbach was pretty damn good with what he covered and how he covered it.

u/Enderthe3rd · 5 pointsr/vba

The two I keep on my desk:

Excel 2013 Power Programming with VBA by John Walkenbach

Professional Excel Development by Rob Bovey

The second one is more advanced, but indispensable if you want professional quality applications in VBA.

u/Senipah · 5 pointsr/vba

I think this thread is more of a discussion than a regular question and I'm changing the flair accordingly.

I fully agree with /u/chrispsn_ok's comment both on bytecomb (which is linked to on our resources page) and his advice that the best way to expand your "mastery" is to incorporate knowledge and best practices from other languages.

In a similar vein there is a lot to be gained from researching language agnostic concepts such as knowledge of common paradigms(functional, OO, procedural, etc), data structures, design patterns, etc. Check out Uncle Bob or books like "Code Complete".

edit: as far as VBA specific books go, I only have Excel 2002 VBA: Programmers Reference which is excellent but the latest revision only seems to go up to 2007. It might be worth buying one of the more recent books by John Walkenbach such as the "Power Programming with VBA" series.

u/[deleted] · 3 pointsr/learnprogramming

> What you are saying is pretty true and I know that VBA really popular among "real" programmers, but a lot of companies I talk to request skills in VBA for Excel.

That's fair enough... but indulge me here for one moment.

If you were a close friend of mine and you came to me with this question, and I knew you were capable of handling it, my advice to you would be to learn another language before learning VBA. I say that to you as a guy who's first language was VB 4, and whose first job outside of working at a supermarket was programming Excel applications in VBA.

VBA is almost never the right tool for the job. As such, there are things you can do in other languages with other toolkits that will far exceed what you can do with VBA at the same level of skill. As such there will be entire classes of problems that you can solve that would be out of your reach if your only language is Visual Basic for Applications.

You will be a better programmer, you will be capable of more things with less effort, and in the end you can always go back and learn VBA to say that you know how to use it.

That being said, if your heart is set on VBA as your first language, I would check out one of the following two books:

Excel 2010 Power Programming with VBA

Excel VBA Programming For Dummies

u/neilhighley · 3 pointsr/VisualStudio

I don't think you don't need to use Visual Studio. This is certainly a job which VBA was created for within MS Word and will do everything that you want.
You can use the Document object that can load in a file and pull out what you need.
Ultimately, learn Office Word 365 thoroughly and VBA to extend rather than Visual Studio. Visual Studio is an IDE for programming languages, and as such you will need to learn the programming language to use and how to package and deliver the software.
Office has VBA to extend functionality in Office Applications, and as such is more suited to what you wish to do.

See : https://docs.microsoft.com/en-us/office/vba/word/concepts/working-with-word/working-with-document-objects
https://www.amazon.co.uk/Mastering-VBA-Microsoft-Office-2016/dp/1119225388/
https://mva.microsoft.com/en-US/training-courses/office-365-developer-overview-13986

u/IamPanda31 · 3 pointsr/learnprogramming

So, here's my advice and basically how I learned what I did. I got a major in Finance in college, but I took Python and C++ classes (I also took a discrete class and an "IT" class that gave me some additional insight, but probably unnecessary). With that being said, I would learn basic Python first because debugging and learning algorithms is an absolute bitch in VBA. You don't need to learn additional libraries etc, just go through a basic online course and get through learning about Object Oriented Programming. From there it is much easier to transfer to VBA and learn the Excel object library. This guy: http://amzn.com/1118490398 is the best VBA programmer and is very well known. I mainly use the book as a reference when I'm going into an entirely new area and I search google for smaller questions Also, stop by /r/excel and feel free to PM me with any additional questions!

u/kerosion · 3 pointsr/excel

Let's look at it from another angle. What are you going to be doing with Excel?

My experience is that it's all about the Data Process. You have to clean it up. Check the minimum values, maximum values, date ranges, see that different fields are what you want. Half your SSNs are text and half are numbers? How do you deal with that?

Do you have all the information needed for the statistical analysis you want to do?

Your client claims this list of people have been paid out this much. Here's a list of actual benefit payments from their bank trust. Compare them and explain the differences.

For added fun, the bank trust gave you benefit payment information as pdf files. Turn them into excel and find some way to connect them to each participant.

May be worthwhile to simply research the data process and build from there. Much of the actual learning comes from working with others and paying attention to the tricks and hotkeys they're using. Every single candidate puts 'proficient in Excel' on their resume. Telling a story about something done with it is usually better.

Hell. Research Beersheets for fantasy football, rip it apart and see how it ticks. Apply lessons learned to another sport.

Burning through this there are certain things you run into often.

VLOOKUPS. COUNTIF. Filters. DATE. TEXT. MATCH. Grouping. VALUE. General practices such as color-code inputs. Center Across Area rather than Merge Cells.

alt+e+s in sequence to bring up special paste options. (alt+e+s+v for paste values and alt+e+s+t for paste formats are super common. paste transpose exists.)

There's got to be some online site to offer services for pay. I'd be shocked if there's not someplace to offer data cleanup.

Really want to go to the next level? Dive into VBA. The go to is Excel 2010 Power Programming with VBA. Read through a section, do all the examples, come back then try to do them all again without guidance. This gives insight into a lot of what goes on behind the scenes in Excel, teaches many hotkeys you wouldn't otherwise pick up on. The moment I discovered how to access the Immediate window (ctrl+G) then learned to throw a Print command or two into my coding to test values in the VBA editor was the key moment I connected my programming in VBA to what I had done in R, Matlab, C, or Python.

In college is an excellent time, because you have time. It doesn't seem like it now, but time is hard to find afterward as well.

u/joenyc · 3 pointsr/learnprogramming

I think that there's more bad code written in VBA than any other language. In my experience people get out of college, start at a job, and get assigned the VBA tasks because no one else wants to do them.

Everyone, even CS graduates, even experienced developers, somehow forgets everything that they have ever learned about software engineering, as if VBA isn't "real" programming, so the rules don't apply. It's like a disease, and OP, you are at risk. You feel fine today, but tomorrow you'll write thousand-line functions named "doIt", you'll have zero encapsulation of any kind anywhere, and whenever you hit a problem you'll play with the macro recorder or read forums populated by desperate, subliterate morons who apparently write code while high on crystal meth. The second something sort of works, once, on one machine BOOM it's done, it's fixed, call it a day.

I used to be that person.

Now I've read Professional Excel Development. I would give anything to be able to give that book to myself 5 years ago. If I had a time machine, that would be job one. Would I kill Hitler? Meh, you have to weigh the holocaust against some of the VBA code I've seen. It's a tough call.

Read the book, OP. Read it for your own sake. Read it for your coworkers'. Read it for mine.

(I don't get any payment from that link, btw - I wouldn't feel right selling it. In fact, I might start a charity to give it away.)

u/Terkala · 2 pointsr/vba

If you want tips for style-guides on implementing in excel and some vba best practices, I'd also suggest

https://www.amazon.com/Professional-Excel-Development-Definitive-Applications/dp/0321508793

But that's more for "here is how you make your work look top notch and be easy to maintain for 5+ years".

u/jugglingbalance · 2 pointsr/Showerthoughts


If you are completely new to programming, don't worry, it's definitely not as hard as people believe it is.

The first important thing when you are learning any programming language is to be goal oriented, because this is what is going to keep you engaged and make you more likely to actually gain something from anything you read.

Think of the most tedious and repetitive task that can save you some time - that is going to be your best place to start. For instance, some formatting always has to be updated and it's time consuming, or you need to create a letter from information on a speadsheet every day etc. That's where you'll see your work pay off immediately, and that rush of having it work for you every day will really inspire you to keep going. For me, it was taking a bunch of files and porting the information to one place initially.

Once you know what your end goal is and what you want it to do, google it in every variation you can find. YouTube tutorials are actually where I started, just to see if what I was thinking of was possible. They have a lot of great resources for how to do certain things and you can find out if the concept is achievable this way really easily. Try to "steal" code or try examples that you find. (Just put a url in a comment or some indicator of where you found it from because you will forget later, and having the page it came from can significantly help when you are troubleshooting. This is attribution etiquette for programming, anyway.) Don't get discouraged if the code doesn’t work the way you imagined, this is going to allow you to see why it behaved the way it did later on and is a really important step to learning how things worked. Besides, with anything you do, you will likely have to mold it so much to your project, it will end up being more your work than anyone else's in the end either way.

[Wise Owl Tutorials] (https://www.youtube.com/watch?v=KHO5NIcZAc4&list=PLNIs-AWhQzckr8Dgmgb3akx_gFMnpxTN5) are some of the most thorough and logically laid out tutorials I have seen for VBA and I heartily recommend this if you learn better through video - he's pretty much made a full course of it.

Then, I would say dive in and find out how the language itself works for a little bit. Read about variables, if statements (and variations of these), and loops.

Variables are the placeholders for your data, and using the right ones in VBA means that you can make your program run faster or slower, so it definitely helps to get an understanding of these and what they do early.

If statements and operators and their variations are the parameters that determine what happens. (If dog does not = fed, then feed dog.) These are the logic that everything runs on. You would be surprised how much coding comes down to statements like the dog example.

Loops are how your program is able to do a few things to a large data set in very little time in a structured way. (For each dog, if dog is not fed, then feed dog, then move onto the next dog.) These are also ubiquitous in all programming languages, but the syntax varies between language. This is how those if statements become really powerful.

If you are like me, and learn well from books, these two have been the best ones I've found:

[Excel 2016 Power Programming with VBA (Mr. Spreadsheet's Bookshelf)] (https://www.amazon.com/Excel-Power-Programming-Spreadsheets-Bookshelf/dp/1119067723/ref=sr_1_1?ie=UTF8&qid=1539050489&sr=8-1&keywords=john+walkenbach+excel+2016+vba)
This book is great for learning from the very beginning, especially if you don't have any previous programming knowledge. It will walk you through everything in a very easy to read way and get you dreaming about the possibilities with VBA. It also shows you why you may end up wanting to get detailed in the ways you think about variables etc with timed examples. I used the 2013 edition of this book and I was very pleased. This is a great choice as your first book covering the basics.

Mastering VBA for Microsoft Office 2016:
This book is the one I used the most out of all of the books that I bought on the subject. It has some really excellent examples of things you may not have even imagined could be done in VBA that give the language a lot of power and usefulness. I still refer to it, even though I outgrew all of my other books. It spells out a lot of the basics as well, and if I had to refer to VBA on a desert island, this would be the only book I would bring. (Although the idea of having to refer to VBA on a desert island is a special kind of nightmare, even for someone like me who loves it.)

If you can only afford one of these, definitely get this one - the first one is great for baby steps but becomes outgrown quickly. I recommend it mostly because it does an excellent job of explaining programming if you have never done it before.

The Spreadsheet Guru has some really basic things ranging to some more advanced concepts and is not a bad place to start learning some quick fixes.

Excel Macro Mastery is great for getting to know how the moving parts work, especially with some of the complex data types that it can be a little hard to wrap your head around as a newcomer. This site has some times when it will try to sell you on his program, but it's worth a little annoyance for the truly good advice:

Excel Virtuoso is excellent for advanced program structures and how to make VBA act more like an object oriented programming language. It may be good for some of the earlier stuff, but this is when I found ways to do things that most people don't seem to know it can, including ways to make custom classes for data do things that are not very well known and only glossed over in most VBA programming books. It's been a godsend for me, and is the cornerstone that a lot of my work actually hinges on as the project I took on was far more complex than the scope of most macros, which are quick and simple maneuvers primarily.

But don't limit yourself to these resources. Look everywhere when you are trying to learn and don't fret overly with whether you are doing something right or wrong. Make it, test it, troubleshoot it, and improve.

The computer will not explode if you do something wrong. VBA is meant to be like a fisher price language because the intent of providing it is more for office workers than full blown programmers. At worst, your program will shut down and you may have to end the task in task manager or reboot your computer. This is rare. Most times, the compiler will remind you that you missed some part of syntax, which is a quick and easy fix that even advanced programmers have to deal with all of the time.

Feel free to look at places like stack overflow, but take all of this advice with a grain of salt, because there are normally at least 20 ways to do something (and that is on the low end) and everyone can get a little protective of their way. I use this as more of a brainstorming effort.

And if you have any questions, feel free to reach out to you. If I haven't dealt with it already, I may be able to point you in the right direction. :)

Also, if you're interested in learning programming in general, this is an awesome list of coding courses and where to find free coding courses that freecodecamp sent out this summer:
https://medium.freecodecamp.org/500-free-online-programming-computer-science-courses-you-can-start-in-august-bc1bcac1af5e

u/---sniff--- · 2 pointsr/vba

Professional Excel Development really showed me the limits of what can be done with Office.

https://www.amazon.com/Professional-Excel-Development-Definitive-Applications/dp/0321508793

u/ionchunneler · 2 pointsr/Physics

Thank you! I used John Walkenbach's book on VBA programming. The click buttons are called Form Controls, and they link to macros that execute VBA code. It's pretty easy to pick up as there are lots of online examples.

u/EinSpringfielder · 2 pointsr/visualbasic

This book has never let me down. There are versions for each version of excel you need.

I would also say learn to use the object browser and help functions within VBA. They can be helpful in explaining what functions and objects do.

I probably learned the most by typing in google: "How do I do _____ in access VBA?"

u/pmo86 · 2 pointsr/vba

Yes, that book is terrible. Check out this one. There is a used one for $10 with prime shipping. It's 2010 version, but not much has changed.

u/AcornBiter · 2 pointsr/learnprogramming

With VBA, I think it would be very boring and hard to learn out of a book. Really the best way to learn is to have a simple task in Excel that you can automate with VBA. Then as you do more and more your knowledge grows organically. If that's not possible, I learned a lot from this book. Or you can get the updated 2016 version.

For SQL, I mostly use W3Schools when I forget some syntax, so that might be a good place to start.

u/PaulNissenson · 1 pointr/excel

There won't be any mandatory books for the course, but I will put on the syllabus that a good reference is John Walkenbach's "Excel 2013 Power Programming with VBA". I think this book is better for people who already have some experience in VBA since it is very thick an intimidating to the beginning.

http://www.amazon.com/Excel-2013-Power-Programming-VBA/dp/1118490398

u/odles_44 · 1 pointr/excel

personally, i've really enjoyed Power Programming with VBA by John Walkenbach. It is very elementary, with lots of examples and a disc included. If you are a total noob (like me) and want to speed up repetitive BS at work, this isn't a bad one to pick up.

u/dsvella · 1 pointr/vba

Link to Amazon.co.uk. I cannot remember the edition I have (it's in the garage somewhere) but that seems to be the most recent.

u/ViperSRT3g · 1 pointr/vba

If we're going with Amazon, might as well add this to the mix: VBA for Dummies

u/williamsmaxx · 1 pointr/learnprogramming

If you're interested in continuing programming with VBA, primarily as a background to Excel, Walkenbach has a great book:

http://www.amazon.com/Excel-Power-Programming-Spreadsheets-Bookshelf/dp/0470044012/ref=sr_1_1?ie=UTF8&qid=1289314070&sr=8-1

u/pyskell · 1 pointr/excel

I'm considering these two. Leaning more towards the second one based on reviews and me also needing to understand the PowerPoint parts of VBA.

But if anyone has any experience with either and can vouch for the quality of one or both I'd love to hear it.

VB & VBA in a Nutshell: The Language (In a Nutshell (O'Reilly)) https://www.amazon.com/dp/1565923588/ref=cm_sw_r_awd_8PhJwbEJ15WWZ

Mastering VBA for Office 2010 https://www.amazon.com/dp/0470634006/ref=cm_sw_r_awd_qShJwbKDE6RS6

u/NastyNate4 · 1 pointr/finance

I second the need for Excel and VBA. Then pick up more depending on what you actually end up doing. I advanced up the pay ladder by learning Access & SQL. VBA Resource I agree with your sentiment to just pick a project and start programming. I learned more from trial and error and stackoverflow threads than I did in any tutorial class or reference book.

u/sdadsww · 1 pointr/slavelabour

numerical methods with vba programming by hiestand solutions manual pdf

$5, paypal

Solution manual of this book: https://www.amazon.com/Numerical-Methods-Programming-James-Hiestand/dp/0763749648

u/CheesingmyBrainsOut · 1 pointr/excel

As long as you understand that VBA would be less efficient, and you'd be doing it for the experience.

I like to get fully immersed in topics so I'd recommend this book. It helped me get a solid introduction of most topics without getting too complex. You can get by with just googling functions but long term you'll want a more thorough introduction either with this book or an online resource. Also the contextuals (spelling?) and mrexcel sites are good iirc. And definitely stackoverflow.

With that being said, this is a pretty straight forward script, so it shouldn't give you that much trouble. If you have trouble feel free to post your sample script and I can make some suggestions. The best method to learning VBA is to just go at it and see what work. Google and stackoverflow are your friend.

u/NoCanDoSlurmz · 1 pointr/actuary

Excel VBA Programming for Dummies is where I started, and it covered everything I ended up needing. It's only $10 bucks, so there's minimal risk if you think it sucks ;)

u/perrymv · 1 pointr/excel

I started with a 'Dummies' book as a primer followed by ...

http://www.amazon.com/Excel-2003-Power-Programming-CD-ROM/dp/0764540726/ref=cm_lmf_tit_1

This book has always been my favorite. Negligible changes between 2003 and 2010.

u/quintios · 1 pointr/learnprogramming

It really depends on which platform you're writing for. I'd wager it's Excel but I don't want to assume. Are you working with Word, Excel, Outlook, PowerPoint, Visio?

Once you know the platform, I've found VBA to be pretty easy to work with once you can find some information on the Object Model. Microsoft makes it pretty easy to learn within the code-writing environment, in my opinion.

I'm no expert, but whenever I want to write something in Excel, I record a macro of me doing something similar, or the exact thing, and then I just go back and edit it as needed.

As far as I'm concerned this is the bible on the subject. I don't know if there's a newer version out, doesn't look like it.