プロが教えるわが家の防犯対策術!

Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまいます
どなたかご教授願います。また、別コードありましたら教えてください
お願い致します。ファイルは、UTF-8表示です


下記コード使用
Sub Txt統合()

' マージするテキストファイルを集めたフォルダーを指定
Dim FileFolder As String
FileFolder = ThisWorkbook.Path & "\txt"


' そのフォルダー内のテキストファイルの名前を取得
Dim FileName As String
FileName = Dir(FileFolder & "*.txt ")

Dim FilePath As String
FilePath = FileFolder & "\" & FileName

Dim Buffer As String '一時的に文字列を格納する

Dim A As Variant '文字列格納用配列
ReDim B(99, 99) '文字列格納用配列
Dim i As Long
i = 0
Dim j As Long
j = 0



'使用可能なファイル番号を取得
Dim FileNumber As Long
FileNumber = FreeFile

'フォルダ内のすべてのテキストファイルを処理する
Do Until FileName = ""
Open FilePath For Input As #FileNumber
Debug.Print FileName


Do While Not EOF(FileNumber)
Line Input #FileNumber, Buffer
Debug.Print Buffer

A = Split(Buffer, vbTab)
For j = 0 To UBound(A)
B(i, j) = A(j)
Next j

Loop

Close #FileNumber

FileName = Dir()
i = i + 1
Loop
Range("A1").Resize(100, 100) = B
MsgBox "処理が終了しました。", vbInformation

End Sub

質問者からの補足コメント

  • ありがとうございます。
    そのファイルにはBOMがついてますか?
    それともついていませんか?
    回答⇒BOM無のファイルです

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/01/01 09:50
  • お忙しいところ対応していただきありがとうございます

    確認したところ、やり方悪いのか
    処理が終了しましたとメッセージ後

    A列に表示してくれません(Excel2019使用)何度かトライしたのですがうまくいかな状況です
    すみません

    No.3の回答に寄せられた補足コメントです。 補足日時:2023/01/01 14:25
  • すみません
    ご指摘の通りのファイルを表示させ実行し動作することを
    確認いたしました
    お手間を取らせてしまいすみませんでした
    丁寧な対応
    ありがとうございます

    No.4の回答に寄せられた補足コメントです。 補足日時:2023/01/01 15:39

A 回答 (4件)

UTF-8用に修正しました。


(i=i+1の位置がおかしいところ等も修正してます。)
UTF-8(BOM無)で確認しました。

このサイトに投稿するとエラーになるので、下記にアップしました。
https://ideone.com/YFZQ7u
この回答への補足あり
    • good
    • 0
この回答へのお礼

丁寧な対応ありがとうございます

お礼日時:2023/01/01 15:42

こちらで確認したデータです。


以下の内容のファイル(文字コード:UTF8)を1つ作成しまsました。
漢字データ11<tab>漢字データ12<tab>漢字データ13<改行>
漢字データ21<tab>漢字データ22<tab>漢字データ23<改行>
漢字データ31<tab>漢字データ32<tab>漢字データ33<改行>

注意:
<tab>:タブ
<改行>:改行コード
の意味です。
添付図のような結果になりました。

あなたのファイルは、タブで区切られていますでしょうか。
ファイルの内容はどのようになっていて、どのようにシートに表示されたのでしょうか。
(設定対象のシートはアクティブシートなので、そのシートを表示した状態でマクロを実行してください)
「Excelにて、フォルダ内のTextファ」の回答画像4
この回答への補足あり
    • good
    • 0
この回答へのお礼

確認不足で、お手間を取らせてしまい
すみませんでした。いつも分かりやすく
教えてくださりありがとうございます

お礼日時:2023/01/01 15:44

そのファイルにはBOMがついてますか?


それともついていませんか?
UTF-8の場合、BOMの有無により読み込み方法が異なります。
添付図はUTF-8のファイルをメモ帳(windows10のメモ帳)で読み込んだ倍です。上の図がBOMつきの場合、下の図がBOMなしの場合です。
まず、BOMの有無について確認してください。
BOMの有無により、対応が異なります。
BOMについては下記が参考になるかと。
https://at.sachi-web.com/blog-entry-1080.html
「Excelにて、フォルダ内のTextファ」の回答画像2
この回答への補足あり
    • good
    • 0
この回答へのお礼

説明不足ですいません
ありがとうございます

お礼日時:2023/01/01 15:41

おはようございます!



検索した記事ですが、下記が参考になるでしょうか?

文字化けよさようなら!エクセルVBAでUTF-8のCSVを読み込む方法
https://tonari-it.com/vba-csv-utf8/
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2023/01/01 15:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています