
Excel VBAにてメールデータを読み込むプログラムを組んでいます。
データの作り方は、
(1)Mozilla Thunderbirdでメールデータをtext形式で保存
(2)VBAにてtextデータを開く。
しかし読み込みを行うと、文字化けしたデータが表示されてしまいます。
どのように解決したらよいのでしょうか?
文字コード変換を行ってもダメでした。
Sub Read_mail_data()
Const cnsTITLE = "テキストファイル読み込み処理"
Const cnsFILTER = "全てのファイル (*.*),*.*"
Dim xlAPP As Application ' Applicationオブジェクト
Dim intFF As Integer ' FreeFile値
Dim strFileName As String ' OPENするファイル名(フルパス)
Dim vntFileName As Variant ' ファイル名受け取り用
Dim strREC As String ' 読み込んだレコード名
Dim GYO As Long ' 収容するセルの行
Dim lngREC As Long ' レコード件数カウンタ
' Applicationオブジェクト取得
Set xlAPP = Application
' 「ファイルを開く」のダイアログでファイル名の指定を受ける
xlAPP.StatusBar = "読み込むファイル名を指定して下さい。"
vntFileName = xlAPP.GetOpenFilename(FileFilter:=cnsFILTER, Title:=cnsTITLE)
' キャンセルされた場合はFalseが返るので以降の処理は行わない
If VarType(vntFileName) = vbBoolean Then Exit Sub
strFileName = vntFileName
' FreeFile値の取得(以降この値で入出力する)
intFF = FreeFile
' 指定ファイルをOPEN(入力モード)
Open strFileName For Input As #intFF
GYO = 1
' ファイルのEOF(End of File)まで繰り返す
Do Until EOF(intFF)
' レコード件数カウンタの加算
lngREC = lngREC + 1
xlAPP.StatusBar = "読み込み中です....(" & lngREC & "レコード目)"
' 改行までをレコードとして読み込む
Line Input #intFF, strREC
' 行を加算しA列にレコード内容を表示(先頭は2行目)
GYO = GYO + 1
' 文字コードを変換する
'StrConv(strREC, vbFromUnicode) = a
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
Cells(GYO, 1).Value = StrConv(strREC, vbFromUnicode)
' セルにデータを書き込む
'Cells(GYO, 1).Value = strREC
Loop
' 指定ファイルをCLOSE
Close #intFF
xlAPP.StatusBar = False
' 終了の表示
MsgBox "ファイル読み込みが完了しました。 " & vbCr & "レコード件数=" & lngREC & "件", vbInformation, cnsTITLE
End Sub
No.1ベストアンサー
- 回答日時:
文字化けの原因が文字コードのためだと・・仮定して。
Ado.Stream で読み込んだらどうなりますかね。
Sub testAdoStream()
Dim objStrm As Object
Dim strTmp As String
Dim i As Integer
Const ReadLine As Integer = -2, ReadAll As Integer = -1
Set objStrm = CreateObject("ADODB.Stream")
With objStrm
.Charset = "ISO-2022-JP"
.LineSeparator = -1 'CR=13, LF=10, CRLF=-1
.Open
.LoadFromFile "D:\ThunderbirdMAIL.txt"
End With
Do Until objStrm.EOS
i = i + 1
Cells(i, 1) = objStrm.ReadText(ReadLine)
Loop
objStrm.Close: Set objStrm = Nothing
End Sub
なお、Charset の "ISO-2022-JP" はあてずっぽうです。
Thunderbird は使ったことが有りませんので、ここまで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レコードが存在しなかった場合
-
DataGridViewの内容をDBに反映...
-
DataGridViewの、選択されてい...
-
差し込み印刷のレコード数について
-
ADO VBA 実行時エラー3021
-
ファイル書込みで一行もしくは...
-
ACCESSで大量の更新を行うと「...
-
ワードの差込印刷で教えて下さ...
-
レコードセット(ADO.Recordset)...
-
固有レコード識別子の選択とは
-
VB6.0のIsNull関数に相当するもの
-
サブレンジ分割されたNDB(富士...
-
DataGridViewにてセル以外をク...
-
ADOでエクセルからアクセス...
-
[VBA] ADOの Clone と AddNew
-
カレントレコードが無い事を判...
-
サブフォームに新規レコードを...
-
vb.netのdatatableのレコード削...
-
ACCESSのフォームで複数レコー...
-
ADODBのRecordset.Deleteのエラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DataGridViewの、選択されてい...
-
カレントレコードが無い事を判...
-
レコードが存在しなかった場合
-
差し込み印刷のレコード数について
-
アクセスでレポートの1印刷内...
-
ADO VBA 実行時エラー3021
-
レコードセット(ADO.Recordset)...
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
JSPのNULLレコード表示について...
-
ワードの差込印刷で教えて下さ...
-
固有レコード識別子の選択とは
-
データセットのレコード更新が...
-
DataGridViewの内容をDBに反映...
-
Access でレコードセレクタが押...
-
[VBA] ADOの Clone と AddNew
-
サブフォームに新規レコードを...
-
Access を×ボタンで閉じ...
-
ADODBのRecordset.Deleteのエラ...
-
サブレンジ分割されたNDB(富士...
おすすめ情報