Excel VBA VBAマクロ

FileSystemObjectとOpenステートメントのどちらが早い?

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

結果・・・
FSO_10000

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

結果・・・
OPEN_10000

-Excel, VBA, VBAマクロ
-