逆Instr関数
ここに載せてあるソースコードは、参考のために載せてあります
サンプルコードは、一番下にLZHとしてあります
Option Explicit Private Sub cmdSearch_Click() Dim lngPickUp As Long If optInstr.Value = True Then '順方向処理です 'どちらかの内容がヌルの場合 0にします If Text1.Text = "" Or Text2.Text = "" Then lngPickUp = 0 Else lngPickUp = InStr(Text1.Text, Text2.Text) End If ElseIf optBackInstr.Value = True Then '逆方向処理です lngPickUp = BackInstr(Text1.Text, Text2.Text) End If If lngPickUp = 0 Then txtState.Text = "文字列は、見つかりませんでした" Else Text1.SetFocus txtState.Text = "文字列は、" & lngPickUp & "番目に見つかりました" Text1.SelStart = lngPickUp - 1 Text1.SelLength = Len(Text2.Text) End If End Sub '逆方向Instr関数です Public Function BackInstr(ByVal str1 As String, ByVal str2 As String) As Long Dim lngSeek As Long, lngStr2Len As Long '一番後ろの位置を得るために '文字列の長さで取得します lngSeek = Len(str1) lngStr2Len = Len(str2) '後ろから検索していって対象文字列(str2)が '見つかったら、その位置を返して関数から出ます Do If Mid(str1, lngSeek, lngStr2Len) = str2 Then BackInstr = lngSeek Exit Function End If lngSeek = lngSeek - 1 Loop Until lngSeek <= 0 '見つからなかったら0を返します BackInstr = 0 End Function |