If you're starting from Cebu, the best place to see sharks is Malapascua Island. It's just off the northern tip of the province. Specifically, it's one of the best places in the world to see threshers. Keep in mind, they're extremely difficult to photograph. I'm not crazy about the macro photography there, but others might tell you different.
Speaking of macro, Cabilao Island (Bohol Province) is one of my personal favorites. Lots of wall dives and excellent photo opportunities in the shallows. The ferrry from Cebu to Tagbilaron is an easy 2-3 hour journey. Panglao Island, which is also in Bohol and quite popular, may also be of interest to you, although I've never been infatuated with it.
My other recommendation is Apo Island (Negros Province). Apo boasts some of the best coral in the world, there's some excellent drift dives, and a wide variety of marine life. To get there, you just need to take the ferry to Dumaguete via either Cebu or Bohol. If you don't want to stay on Apo--which is very basic (but nice)--there are some high end (i.e. overpriced) resorts in Dauin. Dauin is on the mainland and has some nice muck dives.
If you start from Manila, it's a whole different ballgame. The two main places to see are Puerto Galera and Anilao. I've been to PG many times. It's just a fun place to be (lots of pubs & grub). It's mostly macro, but they do have a few interesting wrecks. I've never been to Anilao, but I'm told the diving is on par with PG. I'd rather let someone else more familiar with the place comment on it's merits.