複数のテキストファイル(.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.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
-----
No.2
- 回答日時:
こんにちは。
Excelの機能だけっておっしゃっていますが、それは、VBAも含まれるのですか?つまり、VBAでしか、Excel上はできませんね。#1さんのBatchプログラムの親戚のWindows Script Hostで作る方法もありますが。
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.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.5
- 回答日時:
#3のWendy02です。
objFile.WriteLine (Mid$(fn, InStrRev(fn, "\") + 1) & Chr(13) & Chr(10))
出力をみると、ファイル名の後に、改行コードが入らないようでしたから、
& Chr(13) & Chr(10)
は要らないようです。
KenKen_SP さんへ
質問主さんの返事を待たずに書いてしまいましたが、単にテキストファイルをファイル名を入れて、出力するだけじゃないかと考えました。Text to Textでしたら、まだ方法がありますね。
私のは、ReadAllを使っているので、ちょっと大丈夫かなと気になりましたが。
お探しの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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
複数のテキストファイルをエクセルに一括で取り込みたい
Excel(エクセル)
-
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。
Visual Basic(VBA)
-
-
4
複数のテキストファイルを一括でエクセルに取り込みたい。
Excel(エクセル)
-
5
マクロを使ってフォルダー内にあるtxtデータをエクセルにデータに変換する方法をご教授願います
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
バッチファイルで改行の出力
-
バッチファイル 指定行の切り出し
-
コマンドプロンプトでFTPでエラー
-
batファイルの結果をテキストに...
-
FTPのバッチファイルで日付を引...
-
コマンド実行結果を環境変数に...
-
echo "abc" >> test.txt で、先...
-
.txtって、縦書きにはならない...
-
R18文学賞は400字詰め換算で(2...
-
コマンドにてテキストファイル...
-
bat処理の実行結果ログ出力方法...
-
fcコマンドにて、list.txt に変...
-
txtは縦書きの機能ないですか?
-
バッチコマンドの「set」で入力...
-
テキストファイル結合のバッチ...
-
cmakeの使い方がわからずハマっ...
-
txtって、 Microsoft Wordの状...
-
Linux mkdirでサブフォルダごと...
-
ファイルを行ごとに比較するシ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
xcopyで特定のファイルのみをコ...
-
echo "abc" >> test.txt で、先...
-
バッチファイル 指定行の切り出し
-
バッチファイルで改行の出力
-
コマンドにてテキストファイル...
-
echoの出力の最後のスペースを...
-
【VBA】テキストファイルから特...
-
コマンドプロンプトで相対パス...
-
batファイルの結果をテキストに...
-
コマンドプロンプトで標準エラ...
-
NULLの置き換えについて
-
FTPのバッチファイルで日付を引...
-
bashで、gotoのようなラベルに...
-
リダイレクト >> を複数のファ...
-
.txtって、縦書きにはならない...
-
bat処理の実行結果ログ出力方法...
-
バッチファイルのfor文を使って...
-
バッチファイル 現在のフォルダ...
-
コマンド実行結果を環境変数に...
-
バッチコマンドの「set」で入力...
おすすめ情報