VBで文字列を1文字ずつ処理するにはどうしたらいいのでしょう。
 製品名(すべて半角)の末尾の半角数字でソートする必要があるのですが末尾の
数字の長さは固定ではありません。これをカウントする方法がわかればright$など
で処理できると思うのですが。
 Delphiでのコードは以下のような感じです。
//末尾の半角数字+ハイフンを得る VPX26AP766-4 ⇒ 766-4
function GetEndNumStr(S :string) :string;
var
 i,j,k: Integer;
 S2 : string;
begin
 if S = '' then Exit;
 i := 0;
 j := Length(S);
 if S[j-1] = #13 then Dec(j,2); //改行コードを飛ばす
 k := j;
 while S[j] in ['0'..'9' ,'-'] do //末尾の半角数字+ハイフンの長さを得る
 begin
  Inc(i); Dec(j);
 end;
 if i > 0 then
 begin
  j := k;      //元の値に戻す
  SetLength(S2,i); //    12345 ・・・ i
  repeat      //VPX26AP766-4
   S2[i] := S[j]; //123456789012 ・・・ j
   dec(i); dec(j);
  until i < 1;
 end;
 Result := S2;
end;