>>840
たったあれだけのヒントでよく完成しましたね。
関数化した点を除けば、ほとんど同じです。

細かいことを言えば、Midって長さを省略できるんですよ。
それと、バリアントが返るMidより、Mid$のほうがちょっと速いです。Left$も同様。

さらに、ループ変数もIntegerよりLongのほうが速いです。CPUもOSもVBも32bitですから。