"Merker1" muss von einem Interrupt "gezündet" werden, ansonsten kommt er ja nie an den Punkt, dass die Variable den Richtigen Wert zum wegspringen hat.
Allerdings wird "FrameIndex" - wie schon erwähnt - niemals was anderes als "0", daher bringt dir deine Hauptschleife nichts...

Mach in jede Sub eine Abfrage auf FrameIndex und eine Interrupt-Sub, die dir die Variablke immer hochzählt, bis sie bei 2 wieder auf 0 kippt (CaseSelect). In den Subs wird mit While FrameIndex = 0 (oder 1 oder 2) gearbeitet. Mach ich auch so, funktioniert.