概要
指定フォルダ内のファイルを ADODB.Stream で1行ずつ読み込む処理です。ADODB.Streamでは、文字コードと改行コードを指定できるので、UTF-8/LFのファイルを読み込むのに使うことが多いです。
処理自体は後から書くことを想定したものなので、「★必要な処理を書く★」のあたりを変更して使ってください。
コード
Option Explicit
Sub ReadFileWithAdoStream()
Dim AdoStream As Object
Dim FD As FileDialog, f As Variant
Dim wkLine As String
Set AdoStream = CreateObject("ADODB.Stream")
Set FD = Application.FileDialog(msoFileDialogOpen)
'ファイルダイアログ
With FD
'ファイルの複数選択は不可
.AllowMultiSelect = False
With .Filters
''「ファイルの種類」をクリア
.Clear
.Add "●●●●●●", "*.csv" '★表示する名前と拡張子を変更
End With
If .Show = True Then
''選択されたファイルがテキストファイルだったら
If LCase(Right(.SelectedItems(1), 4)) = ".csv" Then '★拡張子チェックする場合には適宜変更
For Each f In .SelectedItems
With AdoStream
.Charset = "UTF-8" '★文字コード指定
.LineSeparator = 10 '★改行コード指定(-1:CRLF、10:LF、CR:13)
.Open
.LoadFromFile f
'1行ずつ読み込み
Do Until .EOS
wkLine = .ReadText(-2)
'★必要な処理を書く★
Debug.Print wkLine
Loop
.Close
End With
Next f
End If
End If
End With
Set AdoStream = Nothing
Set f = Nothing
Set FD = Nothing
End Sub
