• ベストアンサー

文字列中の英字の位置 VB6

VB6なんですが。 文字列中の"英字"の位置を探す(例えば、「3-021S236」 ==> 6文字目 ) そんな関数はないのでしょうか? 探した範囲ではありませんでした。 知っている方、よろしくお願いします。  

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

関数では無いと思います。 ユーザー関数で作る。 最初に現れる小文字の英字の桁を出す例。 Function alphp(a) For i = 1 To Len(a) If Asc(Mid(a, i, 1)) >= 97 And Asc(Mid(a, i, 1)) <= 122 Then MsgBox i alphp = i Exit Function End If Next i alphp = 0 End Function ーー Sub test01() x = alphp("123422a567") MsgBox x End Sub

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1です。 正規表現を使えないか調べて見ましたので挙げます。 VBScriptで使えます。 Microsoft VBScript Regular Expresson 5.5などを参照設定しておくこと。 第4文字目は3とでるようです。 こちらは小文字大文字ともどちらでも考える。 ーーーー Function blnCheck1(strLen) Dim objRE Set objRE = New RegExp objRE.IgnoreCase = True objRE.Pattern = "[a-zA-Z]" Set Matches = objRE.Execute(strLen) p = Matches.Item(0).FirstIndex MsgBox p blnCheck1 = p Set objRE = Nothing End Function --- Sub test03() x = blnCheck1("231v12355 g ") MsgBox x End Sub

meron1113
質問者

お礼

わざわざありがとうございました。 英字が存在しない場合エラーがでますが、 何とかなりました。 解決とさせて頂きます。