'***************************************************************************************************
' 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年04月26日
'* 作成者 :井上 治
'* 更新日 :2020年04月26日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:サンプルなのでエラー処理は行なっていません
'***************************************************************************************************
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 >>----------------------------------------