VBAを使ってファイルを開いて処理したいというのは、よくある話だと思いますが、テキストファイルを開いて処理をする場合って、FileSystemObjectとOpenステートメントのどちらが良いのかな・・・と思い、処理の早さについて調べてみました。
ファイルの作成→書き込み→ファイルを閉じる
再度ファイルを開く→追記→ファイルを閉じる
これを10,000回試してみましたが、、結果としてはほとんど変わらず(Openステートメントの方がシンプルで早いのかな・・・と思ったのですが、、)・・・でしたので、やっぱりFileSystemObjectがいろいろできて便利かな・・と。
FileSystemObjectを使ったとき
Sub Test1() Dim FSO As New FileSystemObject Dim FileID As Long Dim Start As Single Dim Finish As Single Start = Timer For FileID = 1 To 10000 With FSO.CreateTextFile(ThisWorkbook.Path & "\FSO\" & CStr(FileID) & ".txt") .WriteLine Now .Close End With With FSO.OpenTextFile(ThisWorkbook.Path & "\FSO\" & CStr(FileID) & ".txt", ForAppending) .WriteLine "test" .Close End With Next Finish = Timer MsgBox ("秒:" & Finish - Start) End Sub
Openステートメントを使ったとき
Sub Test2() Dim FileID As Long Dim Start As Single Dim Finish As Single Start = Timer For FileID = 1 To 10000 Open ThisWorkbook.Path & "\OPEN\" & CStr(FileID) & ".txt" For Output As #1 Print #1, Now Close #1 Open ThisWorkbook.Path & "\OPEN\" & CStr(FileID) & ".txt" For Append As #1 Print #1, "test" Close #1 Next Finish = Timer MsgBox ("秒:" & Finish - Start) End Sub