Sunday, March 24, 2013

Opinion: Oh, So You Recorded a Macro?

This statement is quite insulting and condescending to me, especially so when the person saying it knows little about the amount of coding involved with the ‘macro’ in question. I program as a hobby, with a little experience in this and that. While coding this or that in VBA/Office can be simplified by recording your steps, there is actually a lot that either can't be done by simply recording, and also much that can be done more efficiently than what was recorded.


In my job, I have the excellent opportunity to be able to program tools for the job. That programming is in VBA, since we use Microsoft Office. Some 'real' programmers would not call this ‘real’ programming, and I will concede that VBA can be a much simpler process than other languages. I have some tangible experience with Perl, Java, and C++ (plus I’ve played with a few others) and I know that VBA in its simplest form has its limitations. Despite that, I will argue that the language is as much of a useful and robust tool as you make it, and VBA can be capable of many things outside simple formatting and cutting and pasting automation. If all you do in VBA is record macros, then yes, it's just recording macros. However, if you develop your own class modules and forms, work with modular VBA applications, access the Windows API, and interface directly with other applications outside the Office Suite, then you've gone a tad bit above and beyond what simple macros can achieve.

When discussing one of the tools [1] I have created and how it works/what it does with a coworker, I was responded to with the title of this post. No, I did not just record a macro. If someone could recreate what I’ve done using the just macro recorder built in to Office, then I’ll shut up, but that’s not going to happen. On top of that insult, when discussing another tool [2] with another colleague (remote, via telephone conference call) who didn’t know that I was the one who made the tool, the following pseudo-quote was spat out at me. 'Frankly, I have no idea how someone was able to do this, so I’m skeptical that it even works.’ (Mind you, I don’t remember the exact words, but this is the best my memory’s got.)

Really? Really?!? It’s ‘black magic’, therefore it’s bad? Do you have any concept of how all the software you use does anything that it does, or have any general understanding of electronics? If not, then how in the world can you trust your computer at all? This was by far the most ridiculous statement I’ve ever heard regarding one of my tools. Despite the ignorance of others around me as to how such things work, I will continue to produce them as long as my job allows. I still enjoy it, and some people do actually appreciate the help and simplification of their jobs.

Again, I’m no expert programmer, nor do I claim to be… For those interested, here’s some general explanations of the tools specifically mentioned above.

[1] This tool essentially breaks apart large chunks of data (~15k lines in Excel, usually) based on multiple user-selected and customizable criteria, up to 15 or so variables, and has an option to email the data out to various users. No, this is not the most complicated task, but Outlook and Excel automation can not be achieved at this level through simple recording.

[2] This tool locates an internet browser window, finds a form within the browser, reads the values from that form, runs calculations on those values, and updates the values back into the forms. Again, interfacing with other applications is not something that a simple recording can handle, but it’s not hocus pocus, and at this point in time, the correct functionality has been tested successfully in normal operation numerous times.

comments powered by Disqus