The 27-year-old, who has played in 21 Test matches for England, has been part of the Yorkshire setup since 2008 following a switch from Derbyshire.
The Zimbabwe-born cricketer, who has scored four Test centuries and seven half-centuries, will take on the responsibility across all three formats of the game.
“It is an absolute honour to be named the club captain and to follow in the footsteps of some great captains over the years. I cannot wait to get started,” Ballance told the club’s official website.
“When Andrew Gale called me, it was impossible to turn down. Being captain is something that I enjoy doing and hopefully I will do a good job for Yorkshire and follow on from the good work that Galey has done over the years.
“I’m experienced now, I have played a bit of cricket over the years, so I have seen how different captains work. I think that I am a calm person and like to think that I have a decent cricket brain. I’m not a massive speaker, but I will be looking to lead by example on the field and get the lads to follow me.”
Ballance is currently with the England Test squad in India.