Wednesday, March 2, 2011

Oh, So You Recorded a Macro?

This statement is quite insulting and condescending to me than someone telling me this. That is especially true 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. I do not claim to be an expert at any one thing, but I can do quite a bit more than your everyday computer user.

This post has been moved to a new location.

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 there can be much more VBA Logo - Rantomnessinvolved with 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, 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.

2 comments:

  1. Well said. You do good work and im glad I get to help program as well. Although, it doesn't look good when you enchant spells and brew potions at your deak. I told you: do that part of the programming off the floor!!
    (EvilGrin)

    ReplyDelete

Thanks for taking the time to leave a comment. I will usually do my best to respond as quickly as I can. I would like to encourage conversations between myself and others in this way, so please feel free to speak your mind!