My druid also used macros for shifting and I bound them to various buttons on my mouse. They all had logic so it wouldn't cancel the form I was shifting into (i.e. spamming bear button would unshift me from anything non-bear, then shift me to bear) except for the travel form macro (mostly so I can spam it to escape from snares/roots).
I can dig up the macros in a little bit once I get back home.
[edit] I basically have the same things Blindworld has, just with different coding. They achieve the same end result, though. I do prefer my "All In One" travel for macro, so I'll post it here:
/cancelaura [stance:1]Dire Bear Form;[stance:2]Aquatic Form;[stance:3]Cat Form;[stance:4]Travel Form
/dismount
/use [outdoors]MOUNT
/cast [nostance,swimming]Aquatic Form;[nostance,outdoors]Travel Form
If you're not moving and not in combat, you'll mount. If you're moving, you'll use travel form. If you're in water, you'll go aquatic. You can even set it up so if all those fail, you can go cat for dash. I haven't bothered working out how to put flight form in since I've retired from my druid for the time being.