に代わるものFileSystemObject
はADO
ただし、あなたの発言は
私は(信じています)最初の数文字を読むためだけに全体をメモリにロードしています。
間違っている。
私があなたを誤解させていると思うのは、最初の行を読んだ後にループを終了していないという事実です。行ごとに読むことで必要なものを取得できますが、ファイルをすぐに閉じていません。コード内で開始したオブジェクトを常に閉じることは、プログラマにとって良い習慣です。ぶら下げたままにしないでください。また、環境に依存して殺すこともできません。
以下のコードをあなたのコードの代替として検討し、効率の違いがあるかどうかを確認してください
Option Explicit
' add references to Microsoft Scripting Runtime
' Tools >> References >> Microsoft Scripting Runtime
Sub Main()
Dim fileName As String
' make sure to update your path
fileName = "C:\Users\FoohBooh\Desktop\Project.txt"
ReadTxtFile fileName
End Sub
Sub ReadTxtFile(fileName)
Dim oFSO As New FileSystemObject
Dim oFS As TextStream
Set oFS = oFSO.OpenTextFile(fileName)
Dim content As String
content = oFS.ReadLine
With Sheets(1).Range("A1")
.ClearContents
.NumberFormat = "@"
.Value = content
End With
oFS.Close
Set oFS = Nothing
End Sub
上記のコードは、.txt ファイルの最初の行を最初のシートのセル A1 に読み込みます。fileName 変数を絶対パスに設定することを忘れないでください。