Re: Introducing Macros In Workplace
About eight months back I was in a similar situation as you, stuck in a non-tech office job with a programming background. That's when I picked up VBA, got me through many months without getting bored.
Selling your "services", you can quite easily build a reputation. Here's my two cents on what you are about to embark on, if you'd care to read. Just keep in mind that while I'll just type these as some kind of ultimate truths, they're just my opinions.
One thing I've noticed is that people don't trust automated processes. You need to make them transparent, explain the user what is happening in the background, and so forth. A very important factor is to make the functionality of your macros user-modifiable, and there are two very good reasons for that. One, your users feel more comfortable using the macros when they know that if there is a change in the input data, or some files change names or locations, it won't break their routine. Another, when you do a number of these projects for people, the support cost starts to reach skies quite fast. (Depending largely on how stupid your users are, but IMHO they quite often exceed your wildest ideas of possible idiocy.)
Documentation is something you will need to do, because when it is finally time to modify something, or even use the macro after two-week leave, quite often the users tend to forget how things work.
Consider seriously separating data and code where possible. If users process certain types of files often, create an add-in to handle these. If they only refresh a single report, create a separate add-in. There are two reasons, at least. This way they aren't bugged by macro security warnings every time they open their file, and if you ever need to make changes in the code, you don't have to reconciliate the new code with data.
Assuming all your users are on a shared company network: write a good, solid error handling module that logs errors in a central location. If your mail server is configured for it, even shoot a silent mail to yourself using CDONTS (Google around for this if it sounds like something you'd like to do). This way you can debug any problems easily, or even see that users are having trouble with this or that, and pre-emptively help them fix the issue, whether it is in your code or sitting in front of the monitor.
People like a little flash. Instead of having them Alt+F8 to run your macros, create a custom toolbar or a menu item. Much more professional. For some reason people I have worked with have also preferred to keep ScreenUpdating turned on, so they can see what is happening, and they think it's cool to see the computer doing their work for them.
When sitting down with a potential "client" and discussing the requirement, there is a fine line between a healthy, iterative process, and a situation where you are working to produce code while they keep throwing new requirements at you. I'm not saying you shouldn't be flexible, but agreeing on some kind of functional specification, whether it's a neatly typed document or jotted minutes from your discussion, is generally a good idea. Alternatively you can go completely Agile and throw betas, revisions, release candidates and what not at them, but while that might get the user what he or she wants more reliably, it is also more work for you.