シート画面
ファイル内から文字「name」を検索しています。
見つかればその行番号と前後10文字を表示しています。
コード
下記のVBAコードに変更してください。
'ファイルを開き読む
Private Function MyFileRead(fname As String, ByRef lr As Long, lc As Long) As Boolean
Dim lLine As Long
Dim lPos As Long
Dim s1 As String
Dim fn As Long
Dim tmp As String
lLine = 0
fn = FreeFile
'ファイルを開く
Open fname For Input As #fn
Do Until EOF(fn)
'一行読込み
Line Input #fn, tmp
lLine = lLine + 1
lPos = InStr(1, tmp, TextBox1.Value)
If lPos <> 0 Then
If lPos - 10 < 1 Then
s1 = Mid(tmp, 1, 20)
Else
s1 = Mid(tmp, lPos - 10, 20)
End If
lr = lr + 1
Cells(lr, lc + 2) = lLine & ": " & s1
End If
Loop
Close #fn
End Function
下記のVBAコードを追加してください。
'ファイルを一気に読み込みチェック
Private Function MyFileFirstRead(fname As String) As Boolean
Dim fn As Long
Dim buf As String
fn = FreeFile
buf = Space(FileLen(fname))
Open fname For Binary As #fn
Get #fn, , buf
Close #fn
If InStr(1, buf, TextBox1.Value) = 0 Then
MyFileFirstRead = False
Exit Function
End If
MyFileFirstRead = True
End Function