I just made a macro in UO:Assist.. somewhat useless as it takes about 10 seconds to fire off no matter how I tweak the pauses and the OP asked for something quick.
I don't have enough Honor points to test it, but I would hazard a guess something that uses a confirm gump UO:A macro with a keystroke passthrough to UO that fires an invokeVirtue/targetSelf might work.
*edit*
Just did a quicker UO:A one this way: I bound Honor to a key in the 2D client, started recording a UO:A macro, hit the Honor key, targeted myself. This'll Honor/Self quickly, I just don't have the Honor points to complete the macro & see if it works.
*edit more*
Turns out I had some Honor left on an old samurai char, the UO:Assist macro will in fact work. It looks like this:
UseSkill/CastSpell
Target
Menu Selection
The first line is generated by hitting your 2D client Honor key, then target yourself, click okay, and stop recording. Bind that to a key and you should be able to fire off the virtue without fiddling with the gump.