Getting to Olomouc
Getting to Olomouc by public transport is easy. As the old capital of Moravia and 5th largest city of the Czech Republic, train and bus connections are fast and frequent. It's possible to come from Prague, Warsaw, Poprad in the High Tatras and even Moscow without transferring; and from Budapest, Krakow, Bratislava, Vienna, Dresden and Berlin with one change.
(click the city name to search for connections)
From Prague we generally recommend the trains. The Supercity SC trains take 2 hours 10mins and the slower but cheaper EC, IC and R trains take 2hrs and 45mins to cover the 250km. There's no need to change, the second half of the trip has some nice scenery and if you're in a group of 2 or more people you'll get a discount which makes it cheaper than the bus.
The buses from Prague go all the way down to Brno and take around 4 hours to get to Olomouc. The freeway is ugly the whole way and you might have to switch buses in Brno. If you're travelling alone it will be a couple of Euros cheaper than the train.
From Poland the trains are also best because there are no good long distance bus connections. From Warsaw the direct Prague trains pass through Olomouc. From Krakow and Wroclaw the best connections usually involve getting yourself to Katowice and then switching to the Warsaw-Olomouc-Prague express. If you switch to the Warsaw-Vienna express, you'll need to change again at Přerov which is a major rail junction 20km south-east of Olomouc.
From Vienna, Bratislava and Budapest trains travel regularly up to the Czech border town Břeclav and from there along the valley of the Morava River to Olomouc. By bus you'll need to catch a Prague-bound bus to Brno and change there for Olomouc. In Hungary and Austria buses are generally cheaper than trains, and some of them pick up from Vienna Schwechat International Airport. Slovakian trains are better value and will be around the same price or a little cheaper than the buses.
From Poprad in the High Tatras two or three direct trains each day take a little over 4 hours to get to Olomouc. Another option is to take one of the two-hourly trains to Žilina and switch there for Olomouc. In this way the trip takes between 5 and 6 hours. From places like Zdiar right up in the mountains, you almost always need to get down to Poprad and switch for Olomouc there.
From Český Krumlov it's a bit difficult to get anywhere that's not Prague. The shortest and cheapest way to get to Olomouc is the bus route via České Budějovice and Brno, but it may take 7 hours to cover the 270Km. It may be quicker but probably more expensive to get yourself to a major city like Prague or Vienna and follow the above directions from there. Or you could break the trip by spending a night somewhere like Telč.