先頭からいくつかの文字を検索する
サンプルコード
以下にサンプルコードを示します。
VB6.0 以前
' ------------------------------------------------------------------------------- ' 先頭から末尾に向かって指定したいずれかの文字を検索する。 ' ' @Param stTarget 検索対象となる文字列。 ' @Param stFindChars 検索対象となる文字をすべて格納した文字列。 ' @Param [iStart] 検索を開始する位置。 ' @Param [iCount] 検索する文字数。 ' @Return 最初に見つかった文字列の位置。 ' ------------------------------------------------------------------------------- Public Function InStrAny(ByVal stTarget As String, ByVal stFindChars As String, Optional ByVal iStart As Integer = 1, Optional ByVal iCount As Integer) As Integer If iCount <= 0 Then iCount = Len(stTarget) End If Dim iReturn As Integer Dim i As Integer For i = iStart To iCount If InStr(1, stFindChars, Mid$(stTarget, i, 1)) > 0 Then iReturn = i Exit For End If Next i InStrAny = iReturn End Function
使用例は以下のようになります。
VB6.0 以前
' 処理対象となる文字列変数を宣言する
Dim stTarget As String
stTarget = "EDCBABCDE"
' 先頭から 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する
Dim iFind1 As Integer
iFind1 = InStrAny(stTarget, "BCD")
' 5 文字目から 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する
Dim iFind2 As Integer
iFind2 = InStrAny(stTarget, "BCD", 5)
' 5 文字目から 2 文字まで 'B', 'C', 'D' のいずれかを検索し、見つかった位置を取得する
Dim iFind3 As Integer
iFind3 = InStrRevAny(stTarget, "BCD", 5, 2)
' すべての結果を表示する
Call MsgBox( _
"iFind1 = " & CStr(iFind1) & vbNewLine & _
"iFind2 = " & CStr(iFind2) & vbNewLine & _
"iFind3 = " & CStr(iFind3) _
)
関連するリファレンス
準備中です。
