I think you can take the "long rifles" upgrade, set range to 500, and do
Event: A unit aquires an item
Condition: Unit-type of Item being manipulated equal to <Your bow> (or make it an item-class if you have many bows)
Action: set research level of "long rifles" to 1
I dunno, i have never tried, but this might work.
Give the unit(s) this research and make a reversed trigger with A unit looses an item, and do set research level 0. Or else you can do replace unit with a one with longer range, but i wont go into that now...
Btw, i wrote this on free hand, i can CnP the triggers if u don't know.