Only about 50km apart but train takes almost two hours. Any advice on a quicker way? We won't have a private car. Public bus is ok.
Yes, there is a bus from Breisach, which you get to by train from Freiburg.
There's another way that might save you a little time, possibly some money too... the train (S-bahn) to Breisach takes 24 minutes.
From Breisach you can catch the route 026 bus into Colmar:
This page in German explains that you can purchase a "Regio-Elsass-Ticket" - a pass that is valid for 24 hours for 2-5 persons at a cost of €37 in Freiburg and that will cover both train and bus on the route outlined above. I can't say whether that's a better price than individual train + bus tickets because I haven't checked. But you can look into that online or in Freiburg.
Thank you Russ and Sam. This helps a lot.
When are you going to Colmar and Freiburg? We are planning a trip for the end of November