Unfortunately not. It doesn't seem like it would be all that difficult to program, though.
Order the positions from most specialized to least specialized - C, SS, CF, 2b, 3b, RF, LF, 1b.
Each time a substitution is made (whether from a defensive replacement, pinch hitting, injury, etc.), run through the positions once for the 8 players in the game-
Of the 8 defensive players, the one rated highest at C catches.
Of the 7 remaining players, the one rated highest at SS plays SS.
Of the 6 remaining players, the one rated highest in CF plays CF.
... etc.
Then assuming the defensive depth charts are set up correctly, it would take care of the situation above and more.