|
▼ウッシさん
ご回答ありがとうございます。
さっそく下記ソースを試しましたところ、
objA.MoveFirstのところでコンパイルエラーが発生します。
テストで準備したファイルに問題があるのでしょうか。
私自身知識不足なもので、見当違いな質問になっているかもしれません。
ご容赦くださいませ。
具体的に申しますと、処理の順としては、
a.csv
b.csv
c.csv
・
・
・
というファイルがあったとして、それぞれA列、B列にデータが入っています。
作られた日付の新しい順に、ファイル内A列から特定の文字を順に検索を掛け、
検索で引っかかった場所のB列を返すというマクロになります。
a.csv 読み込み
ファイル内検索
csv ファイルの1.列目(A列)検索 ヒットなし
a.csv ファイル閉じ
↓
b.csv 読み込み
ファイル内検索
csv ファイルの1.列目(A列)検索 ヒットなし
b.csv ファイル閉じ
↓
c.csv 読み込み
検索ヒット、2.列目(b列)情報取得
検索終わり
というようなプログラムを走らせたくて、
でも、日付順というのがわかりません。
一度に読み込み、別のシートにということも考えましたが、
ファイルの数が多くなると時間もかかると思われ、
何か良い方法はないものかと質問させていただきました。
またよい案がございましたら、ご教授お願いいたします。
▼ウッシ さん:
>こんにちは
>
>Sub test()
> Dim objF As Object
> Dim objA As Object
> Dim fPath As String
> Dim oFile As Object
>
> Set objF = CreateObject("Scripting.FileSystemObject")
> Set objA = CreateObject("ADODB.Recordset")
> objA.Fields.Append "FileName", 200, 300, 32 ', adVarChar, MaxCharacters, adFldIsNullable
> objA.Fields.Append "ModifiedDate", 200, 300, 32
> objA.Open
> fPath = ThisWorkbook.Path
> For Each oFile In objF.GetFolder(fPath).Files
> If oFile Like "*.csv" Then
> objA.AddNew
> objA.Fields(0) = oFile
> objA.Fields(1) = oFile.DateLastModified
> objA.Update
> End If
> Next
> objA.Sort = "ModifiedDate ASC" '昇順
> objA.MoveFirst
> Do Until objA.EOF
> '処理Start
> Debug.Print objA.Fields(1).Value & "----" & objA.Fields(0).Value
> '処理End
> objA.MoveNext
> Loop
> objA.Close
> Set objA = Nothing
> Set objF = Nothing
>End Sub
>
>一旦読み込ん並べて処理する感じです。
|
|