ユーザー定義関数内で使用している変数はローカル変数として 定義しておいた方が良いかと思います。 PETVER関数を呼び出す前にV$,V2$,V3$,V4$,VX$に代入されていた 内容がユーザー定義関数内で変更されてしまいます。 あとV2$~V4$でVERSION関数の戻り値を取り出す際に左から何文字と いう指定をしているのでVX$の内容を見る限り意図した文字列が 取得できないと思われます。MID$関数を使うと良いでしょう。