|
>しかし不具合がありまして
>1、C:\systemにファイルが1個しかない場合、2順目のマクロ実行でエラーになる。
これは、「Private Function GetAppendFile」にバグが有り起きているのが解りました
以下に修正箇所をUpします
修正箇所
「Private Function GetAppendFile」の中で
削除行2ヵ所、追加行3箇所です
'読み込むファイル名を取得
If Not GetFilesList(vntRead, strFilePath, _
strExtePattan, strNamePattan) Then
GoTo Wayout
End If
With rngList
lngRows = .Offset(65536 - .Row).End(xlUp).Row - .Row + 1
If lngRows < 1 Then
lngRows = 0
Else
' vntData = .Resize(lngRows).Value '☆削除
' ReDim Preserve vntData(1 To lngRows, 1 To 2) '☆削除
If lngRows = 1 Then '★追加行
ReDim vntData(1 To lngRows, 1 To 2) '★追加行
vntData(lngRows, 1) = .Resize(lngRows).Value '★追加行
Else '★追加行
vntData = .Resize(lngRows).Value '★追加行
ReDim Preserve vntData(1 To lngRows, 1 To 2) '★追加行
End If '★追加行
End If
End With
>2、他のシートで作業中にC:\systemにファイルを追加するとエラーになる。
> (データーの書き込む場所をシート1に指定していないからでしょうか?)
此れに就いては、意味が善く解らないのですが?
たしかに、「Private Function GetFilesList」が動いている時にファイルが追加されれば
エラーを起こすのかな?とも思われますが、
「Private Function GetFilesList」が動いているのは、1秒程度(多分、数分の1秒)でしょうから
確率的には?
ただし、C:\systemに数千数万のファイル(txtファイルに限らず)が有れば別ですが?
>改良に挑戦していますが苦戦です。
>
>
>それから疑問に思った点ですが C:\system にファイルが何百個、
>何千個と増えたら動作が遅くなると思いますが、
>何か良いアイデアはありませんでしょうか
運用の問題ですので特に有りませんね?
ただ、数百個程度なら特に遅くは無いのでは?
|
|