Is it possible to do a macro that alters depending on which socket it's placed on?
For example, "ability X" may be bound to bar 1 positions 1,2,3. However, without using a modifier such as shift, it alters depending on which one of the 3 it's on. Each of them could have different keybindings on them, if that helps. (trying to avoid having 3 different macros to do it)
If you're avoiding making three macros because you do not have enough space for them, I recommend the addon Bindpad.
Bindpad is designed to make it so you can bind keys without having them on an action bar (although you can still put them on there). However, another nifty function it has is infinite macros.