同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。
同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。 テキストファイルは改行なしのもので、 エクセルへのまとめ方は テキストファイル1 テキストファイル2 テキストファイル3 というようにA列に1行2行3行と並んでいくようにまとめたいです。 エクセルのマクロなどでテキストファイルが入っているものを読み込み エクセルにまとめたいです。 処理する量は300ファイルをまとめるという作業をしたいです。 ご教示よろしくお願いいたします。
Excel | Visual Basic・33閲覧・100
ベストアンサー
マクロを走らせているブックが保存されているフォルダ内の「txt」ファイルを読み込みます。 なお、4行目の「m = "Shift-JIS" '"UTF-8" "Unicode"」で、これから読み込むテキストファイルの「文字コード」を設定しています。 今は、「Shift-JIS(ANSI)」ですが、ここを「m = "UTF-8"」にすれば、「UTF-8(BOM付き)」に、「m = "Unicode"」にすれば、「UTF-16LE(BOM付き)」に対応します。 また、最後に不要な改行が入る場合は、17行目 Cells(r, "A").Value = x を Cells(r, "A").Value = Left(x, Len(x) - 1) に変えれば、最後の不要な改行は出力されません。 Sub Sample() Dim m As String, p As String Dim f As String, x As String, r As Long m = "Shift-JIS" '"UTF-8" "Unicode" p = ThisWorkbook.Path f = Dir(p & "\*.txt") r = 0 Do Until f = "" With CreateObject("ADODB.Stream") .Type = 2 .Charset = m .Open .LoadFromFile p & "\" & f x = .ReadText(-1) .Close r = r + 1 Cells(r, "A").Value = x End With f = Dir() Loop End Sub 簡単な説明です。 m = "Shift-JIS" '"UTF-8" "Unicode" これから読み込むテキストファイルの「文字コード」を設定しています。 p = ThisWorkbook.Path マクロを走らせているブックが保存されているフォルダを「p」に入れています。 f = Dir(p & "\*.txt") そのフォルダ内の拡張子が「txt」のファイルの情報を「f」に入れています。 r = 0 行カウント用変数の初期化。 Do Until f = "" 「f」の内容が空っぽになるまで、繰り返します。 With CreateObject("ADODB.Stream") 「Shift-JIS」だけでなく、「UTF-8」や「Unicode」に対応するための機能を設定しています。 .Type = 2 「テキスト」ファイルとして処理。 .Charset = m 「文字コード」を設定。 .Open 開く準備。 .LoadFromFile p & "\" & f テキストファイルを1つずつ開いています。 x = .ReadText(-1) 全行を読み込んで「x」に入れています。 .Close 閉じています。 r = r + 1 1行カウント。 Cells(r, "A").Value = x 列「A」の1行目から今読み込んだ内容を書き込んでいます。 End With f = Dir() Loop を、繰り返しています。
質問者からのお礼コメント
無事解決できました。 ありがとうございました。 他の方もマクロを書いていただいてありがとうございました。
お礼日時:2020/11/29 15:31