UTF-8テキストデータの読み込み

UTF-8コードは今後のWindows上のテキストファイルの「標準」になるようです。
     WindowsMicrosoftAscii(JIS)
 Windows10Ascii(JIS)
 Windows101903UTF-8
 
 


 ANSIAscii(JIS)UTF-8
 


VBACSVUTF-8    BOM(ByteOrderMark)UTF-8
 



()
 UTF-8  UTF-8  (*.txt)(*.*)
 


UTF-8
 2
 CRLF  WebLFA2
 





'***************************************************************************************************
'   UTF-8テキストファイル読み込みサンプル                           Module1(Module)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'   [参照設定]
'   ・Microsoft ActiveX Data Objects x.x Library
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'20/04/26(1.00)新規作成
'***************************************************************************************************
Option Explicit
'===================================================================================================
Private Const g_cnsTitle As String = "UTF-8テキストファイル読み込み"
Private Const g_cnsFilter As String = "テキストファイル (*.txt),*.txt,全てのファイル (*.*),*.*"
Private Const g_cnsCharset As String = "UTF-8"

'***************************************************************************************************
'   ■■■ ワークシート側からの呼び出し処理 ■■■
'***************************************************************************************************
'* 処理名 :READ_TextFile1
'* 機能  :テキストファイル読み込みサンプル(UTF-8)
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2020年0426日
'* 作成者 :井上 治
'* 更新日 :2020年0426日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:サンプルなのでエラー処理は行なっていません
'***************************************************************************************************
Sub READ_TextFile1()
    '-----------------------------------------------------------------------------------------------
    Dim objAdost As ADODB.Stream                                    ' 入力ファイル
    Dim lngRow As Long                                              ' 収容するセルの行
    Dim lngRec As Long                                              ' レコード件数カウンタ
    Dim strFileName As String                                       ' OPENするファイル名(フルパス)
    Dim vntFileName As Variant                                      ' ファイル名受取用
    '-----------------------------------------------------------------
    ' ①「ファイルを開く」のダイアログでファイル名の指定を受ける
    Application.StatusBar = "読み込むファイル名を指定して下さい。"
    vntFileName = Application.GetOpenFilename(FileFilter:=g_cnsFilter, Title:=g_cnsTitle)
    ' キャンセルされた場合はFalseが返るので以降の処理は行なわない
    If VarType(vntFileName) = vbBoolean Then Exit Sub
    strFileName = vntFileName
    '-----------------------------------------------------------------
    ' ②指定ファイルをOPEN
    Set objAdost = New ADODB.Stream
    ' ADODB.Stream処理
    With objAdost
        .Charset = g_cnsCharset
        .Open
        .LoadFromFile strFileName
        '-------------------------------------------------------------
        ' ③ファイルのEOF(End of File)まで繰り返す
        Do Until .EOS
            ' レコード件数カウンタの加算
            lngRec = lngRec + 1
            Application.StatusBar =『読み込み中です....(』& lngRec & "レコード目)"
            ' 行を加算しA列にレコード内容を表示(先頭は2行目)
            lngRow = lngRow + 1
            Cells(lngRow, 1).Value = .ReadText(adReadLine)
        Loop
        '-------------------------------------------------------------
        ' ④指定ファイルをCLOSE
        .Close
    End With
    Set objAdost = Nothing
    Application.StatusBar = False
    ' 終了の表示
    MsgBox "ファイル読み込みが完了しました。" & vbCr & _
       『レコード件数=』& lngRec & "件", vbInformation, g_cnsTitle
End Sub

'----------------------------------------<< End of Source >>----------------------------------------
 FileSystemObjectADODB.Stream
 BOM(ByteOrderMark)
 Do1
 


.ReadText(adReadLine)adReadLine  adReadAllEOF1
 CRLF  LFLF