This example is really nice, it's very well commented and what I really like about it is that it uses a proportional font, but you're not going to like me here;
I don't think it is as simple as it could be or anywhere near as optimised as it should be though. If you'd like I'll make an example for you.
A few pointers, it would be much easier to lay the font out in the same order as the letters appear in the asciii set and as space is chr$(32) you could have;
Letter = ASC(mid$(string$,POINTER,1)) - 31
If your font animimage starts at the space character.
In my own tests Types were slower than array access and for something like a scroller (Unless it's doing anything fancy) there is just no need to use types.
In fact this would be better done using straight drawblockrect and probably be 10 times easier to understand and 10 times faster, using precalculated sin tables would give you a little tiny bit of speed gain but not much, maybe only 1 - 2 fps.
When you are optimising it is best to focus on the most intensive parts of your program and these days with modern PC's you'd be surprised how fast FPU is for something like a sine scroll.