|
始めまして、UMEBAINDといいます。
VBAは初心者なもので教えていただきたいのですが、
以下のようなプログラムを作りSEEK関数を利用して
ファイルから検索している文字が見つかれば
新たに検索する文字を入れ替え
見つかった行のその次の行から検索し処理を
短時間で終了させるような事をやりたいのですが
<<<このPGの本体とも言うべきプログラムは約25万件の処理を
行う為>>>
どうかご教授ください。
よろしくお願いします。
Sub FSEEK()
'MsgBox "引数=" & Mails
Dim s As String
Dim MyArray
Dim d
s = CurDir 'カレントフォルダを取得する
MyArray = Split(s, "\", -1) 'カレントフォルダを"¥"で分割する
'カレントフォルダを再構成する
s = MyArray(0) & "\" & MyArray(1) & "\" & MyArray(2) & "\" & "デスクトップ\ファイルシーク"
ChDir s 'カレントフォルダを変更する
Dim strFILENAME2 As String
strFILENAME2 = s & "\FILESEEK2.txt"
Dim strREC 'オーバーフローの為
Dim setlist As Variant 'SPLITの戻り値はバリアント型の為
Dim n, comt, counter
'strFILENAME2 = s & "\FILESEEK2.txt"
Dim intFileno As Integer
Dim i
Dim jjj As Variant
Dim uuu As Long
Dim dse, A1, A2 As String
Open strFILENAME2 For Input As #1
Dim strtest
Dim ddd As String
Dim FPos As Long
counter = 0
i = 1
Do Until EOF(1)
Line Input #1, strREC
jjj = Split(strREC, ",")
dse = jjj(1)
A1 = "6columsyori"
A2 = "12columsyori"
If StrComp(dse, A1) = 0 Then
MsgBox i & "行目" & "で見つかりました!" & A1 & "行目の処理:" & Loc(1)
FPos = Seek(1)
MsgBox FPos & "⇔本当の現在位置"
A1 = ""
A1 = A2 '処理の入れ替え
Seek #1, FPos + 1 '見つかった位置から検索する
End If
i = i + 1
Loop
'
Close #intFileno
End Sub
データは以下のファイルです。・**************************************
\FILESEEK2.txt
1FILESEEKTESTNOW,1columsyori
2FILESEEKTESTNOW,2columsyori
3FILESEEKTESTNOW,3columsyori
4FILESEEKTESTNOW,4columsyori
5FILESEEKTESTNOW,5columsyori
6FILESEEKTESTNOW,6columsyori
5FILESEEKTESTNOW,7columsyori
5FILESEEKTESTNOW,8columsyori
9FILESEEKTESTNOW,9columsyori
10FILESEEKTESTNOW ,10columsyori
11FILESEEKTESTNOWSEEEK ,11columsyori
12FILESEEKTESTNOW ,12columsyori
13FILESEEKTESTNOWSEEEK,13columsyori
14FILESEEKTESTNOW ,14columsyori
15FILESEEKTESTNOW ,15columsyori
16******************** ,16columsyori
17 uu ,17columsyori
18 uuuu ,18columsyori
19FILESEEKTESTNOW,19columsyori
20FILESEEKTESTNOW,20columsyori
21FILESEEKTESTNOW,21columsyori
22FILESEEKTESTNOW,22columsyori
23 g ,23columsyori
24 g ,24columsyori
25 g ,25columsyori
26 g ,26columsyori
27 g ,27columsyori
28 g ,28columsyori
29 g ,29columsyori
30 g ,30columsyori
|
|