Why is Christian Bale (actor) being replaced by Ben Affleck (actor) as Batman in the upcoming Superman sequel?
Christian Bale has said numerous times that his story as Batman was completely told in Nolan's trilogy and it wouldn't make sense for him to play the role again.
"We were incredibly fortunate to get to make three [Batman films]. That’s enough. Let’s not get greedy," - to Entertainment Weekly
And he's right. Nolan's story is nicely packaged and complete. It would be a bad idea to do anything more with it. The Man of Steel universe is a different universe, so it should have a different Batman.
As for why Affleck - go watch "The Town".