
複数のテキストファイル(.txt)をエクセルのひとつのシートにまとめるにはどうすればいいですか?
またその際、個々のテキストファイルのファイル名を本文の前に挿入したいのですが、
そのやり方も教えていただけると助かります。
ただ、フリーソフトを使わずエクセルの機能だけでやりたいのでよろしくお願いします。
↓のような感じにしたいです。
-------------------------------------------
test1.txt
data data data data data data data data
data data data data data
data data data data data data
test2.txt
data2 data2 data2 data2 data2 data2 data2
data2 data2 data2 data2 data2 data2 data2
data2 data2 data2 data2 data2 data2
-------------------------------------------
Sheet1
現在、一つ一つのテキストファイルの名前をF2で選択してセルに貼り付け、
テキストファイルを開いて本文を前文コピーして貼り付け、というやり方でやってますが、
非常に時間がかかって困っています。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こんにちは。
#2のWendy02です。返事を待たずに、VBA用のコードを、WSH(Windows Script Host)を意識して、作ってみました。ただし、WSHに換えるためには、細かい点は直さなくてはなりません。
Sub TextFileConbining()
'テキストファイルをファイル名を出力てつなげる
Dim BaseFileName As String
Dim FileName As Variant
Dim fn As Variant
Dim FileNo As Integer
Dim objFSO As Object
Dim objFile As Object
Dim objText As Object
Dim TextLines As String
Set objFSO = CreateObject("Scripting.FileSystemObject")
BaseFileName = Application.InputBox("ベース・テキストファイル名をつけてください。" & vbCrLf & "拡張子(.txt)は不要です。", Type:=2)
If VarType(BaseFileName) = vbBoolean Or BaseFileName = "" Then Exit Sub
FileName = Application.GetOpenFilename("テキストファイル(*.txt),*.txt", , , , True)
If VarType(FileName) = vbBoolean Then Exit Sub
Set objFile = objFSO.OpenTextfile(ThisWorkbook.Path & "\" & BaseFileName & ".txt", 8, True)
For Each fn In FileName
If fn Like ThisWorkbook.Path & "\" & BaseFileName & ".txt" Then
MsgBox fn & "は、ベース・テキストファイル名と同じです。" & Chr(13) & "スキップします。", vbInformation
Else
objFile.WriteLine (Mid$(fn, InStrRev(fn, "\") + 1) & Chr(13) & Chr(10))
Set objText = objFSO.OpenTextfile(fn)
TextLines = objText.ReadAll
objText.Close
objFile.Write TextLines
End If
Next
objFile.Close
Beep '終了の合図
Set objFile = Nothing: Set objFSO = Nothing
End Sub
返事遅れてすみません。回答ありがとうございます。
家のPCにエクセルが入ってないので来週職場で早速ためしてみます。
ありがとうございました。
No.5
- 回答日時:
#3のWendy02です。
objFile.WriteLine (Mid$(fn, InStrRev(fn, "\") + 1) & Chr(13) & Chr(10))
出力をみると、ファイル名の後に、改行コードが入らないようでしたから、
& Chr(13) & Chr(10)
は要らないようです。
KenKen_SP さんへ
質問主さんの返事を待たずに書いてしまいましたが、単にテキストファイルをファイル名を入れて、出力するだけじゃないかと考えました。Text to Textでしたら、まだ方法がありますね。
私のは、ReadAllを使っているので、ちょっと大丈夫かなと気になりましたが。
No.4
- 回答日時:
こんにちは。
KenKen_SP です。> test1.txt
> data data data data data data data data
> data data data data data
> data data data data data data
これって、フィールド数可変のスペース区切りのデータファイル
ですか? つまり、
data data data
とあれば、3つのセルに分割してインポートするってこと?
テキストファイル名を表示させて、さらにセルにも分割するなら、
バッチコマンドだけでは無理ではないでしょうか?
VBA でやるなら、一行ごと読み込んで Split 関数でばらして転記
することになりそうです。
No.2
- 回答日時:
こんにちは。
Excelの機能だけっておっしゃっていますが、それは、VBAも含まれるのですか?つまり、VBAでしか、Excel上はできませんね。#1さんのBatchプログラムの親戚のWindows Script Hostで作る方法もありますが。
No.1
- 回答日時:
以下のようなバッチファイルを作り、
combine outfile.txt test1.txt test2.txt ...
と入力すれば、outfile.txt にお望みのものが出力されます。フォルダ内の拡張子 .txt のファイルすべてをまとめるのなら、
combine outfile.txt *.txt
のようにもできます。
----- combine.bat
@echo off
setlocal
set outfile=%~1
shift
type nul > "%outfile%"
for %%A in (%*) do (
if not "%%~A" == "%outfile%" (
echo %%A
type "%%~A%
)
) >> "%outfile%"
endlocal
-----
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- その他(プログラミング・Web制作) pythonでDBのカラム名で取得したオブジェクトの値を表示したい 1 2022/05/13 03:41
- Excel(エクセル) 何方か知恵をください… 下記のシート1にシート2のDATAを表示させたいです。 (シート1の2行目の 6 2022/03/28 17:27
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- Visual Basic(VBA) 複数シート一括作成後に、特定範囲の数式は値で貼り付けしたい 3 2022/10/07 11:18
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- その他(Microsoft Office) Excel 2列分のDATAの並べ替え 1 2023/01/01 17:12
- Excel(エクセル) 格納したデータを配列のように扱う方法はありますか? 8 2023/06/05 08:53
- その他(プログラミング・Web制作) np.stack()とnp.array()の違い 4 2022/05/01 00:00
このQ&Aを見た人はこんなQ&Aも見ています
-
複数のテキストファイルをエクセルに一括で取り込みたい
Excel(エクセル)
-
複数のテキストファイルを一括でエクセルに取り込みたい。
Excel(エクセル)
-
同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。
Visual Basic(VBA)
-
-
4
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
5
複数のテキストファイルを区切りをつけて結合したい
C言語・C++・C#
-
6
特定フォルダ内のテキストファイルの内容を全てエクセルに書き出す方法
Visual Basic(VBA)
-
7
マクロを使ってフォルダー内にあるtxtデータをエクセルにデータに変換する方法をご教授願います
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
echoの出力の最後のスペースを...
-
bat処理の実行結果ログ出力方法...
-
FTPのバッチファイルで日付を引...
-
リダイレクト >> を複数のファ...
-
echo "abc" >> test.txt で、先...
-
xcopyで特定のファイルのみをコ...
-
【VBA】テキストファイルから特...
-
コマンド実行結果を環境変数に...
-
コマンドにてテキストファイル...
-
NULLの置き換えについて
-
bashで、gotoのようなラベルに...
-
複数のファイルをsedで処理した...
-
DOSコマンドで結果として出力さ...
-
Diskpart のリダイレクトの質問...
-
コマンドプロンプトで相対パス...
-
【DOSコマンド】for の デリミ...
-
シェルから引数を使用してsedコ...
-
ACCESSからテキストファイルへ...
-
xcodeでのファイル操作について
-
複数のテキストファイルをひと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echoの出力の最後のスペースを...
-
echo "abc" >> test.txt で、先...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで相対パス...
-
リダイレクト >> を複数のファ...
-
コマンドプロンプトで標準エラ...
-
バッチファイル 指定行の切り出し
-
コマンド実行結果を環境変数に...
-
コマンドにてテキストファイル...
-
バッチファイルのfor文を使って...
-
バッチファイル 現在のフォルダ...
-
NULLの置き換えについて
-
FTPのバッチファイルで日付を引...
-
バッチファイルで改行の出力
-
.txtって、縦書きにはならない...
-
複数のテキストファイルをひと...
-
ワードのテキストボックスの中...
-
複数テキストファイル連結につ...
-
【DOSコマンド】for の デリミ...
おすすめ情報