What exactly is this for?
I think you may have to do this via an array, as you suggested. The array doesn't have to include EVERY tank ever made though; the editor will just have to make the array according to which tanks are in his mission.
Just a thought, though. Doesn't the "fired" eventhandler return which "muzzle mode" the bullet was fired from? That is, either "single", "burst" or "auto"? Couldn't you use this, since most shells are fired from "single", while most guns are "auto" machine guns?