
タイトルの様なコードご存じないでしょうか?
具体的には
①下記の様なテキストファイルがあり、[AAA]から[BBB]の間の複数列を抽出
②抽出した行をエクセルに出力
③フォルダ内のすべてのファイルで①→②の作業を繰り返し、一つのシートにまとめる。
という作業をしたいです。
どうか、よろしくお願いします。
---------------------------------------------
file name is \\storage\012345_test.
0010 0.000 2.000
AAA
0001 FLAT 1.000 0.023
0023 BALL 1.500 0.251
......
0553 FLAT 2.000 0.003
BBB
........
this file created by username with text editer
-----------------------------------------------
(※......の所は不特定の複数列が入ります)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
とりあえずアクティブシートに書き込むものを作成してみました。
--------------------------------------------------------------------------------
Sub Sample()
Const パス As String = "\\storage\"
Dim ファイル番号 As Long
Dim ファイル名 As String
Dim データ As String
Dim セル As Variant
Dim 行 As Long
Dim 対象 As Boolean
ファイル名 = Dir(パス & "*.txt")
Do While ファイル名 <> ""
ファイル番号 = ファイル番号 + 1
Open パス & ファイル名 For Input As #1
Do Until EOF(1)
Line Input #1, データ
セル = Split(データ, " ")
If Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Value = "" Then
行 = 1
Else
行 = Cells(Rows.Count, 1).End(xlUp).Row + 1
End If
If セル(0) = "BBB" Then
対象 = False
Exit Do
End If
If 対象 Then
Cells(行, 1).Resize(1, UBound(セル) + 1).Value = セル
End If
If セル(0) = "AAA" Then 対象 = True
Loop
Close #1
ファイル名 = Dir()
Loop
End Sub
--------------------------------------------------------------------------------
※「Const パス As String = "\\storage\"」は環境に合わせて変更してください(最後の「\」を忘れないように!)
No.1
- 回答日時:
いくつか確認させてください。
①「AAA」と「BBB」の行は必ず存在するのでしょうか?
② テキストファイルの拡張子は「txt」でしょうか?
③ 区切り記号は「 」でしょうか?それとも1行を1つのセルにセットして良いのでしょうか?
④「AAA」と「BBB」の行は出力不要ですか?
⑤ まとめるシートはマクロを記入したファイルに有るのですよね?シート名も教えてください。
⑥ テキストファイルはマクロのファイルと同じフォルダーに有るのでしょうか?
早速のご回答ありがとうございます
>①「AAA」と「BBB」の行は必ず存在するのでしょうか?
必ず1つずつ存在し、この順番でファイルに現れます。
>② テキストファイルの拡張子は「txt」でしょうか?
そうです
>③ 区切り記号は「 」でしょうか?それとも1行を1つのセルにセットして良いのでしょうか?
どちらでも大丈夫ですが、後者の方がありがたいです。
>④「AAA」と「BBB」の行は出力不要ですか?
出力不要です
>⑤ まとめるシートはマクロを記入したファイルに有るのですよね?シート名も教えてください。
とくにこだわっていませんので、シート名は「sheet1]です
>⑥ テキストファイルはマクロのファイルと同じフォルダーに有るのでしょうか?
異なるフォルダに入れています。
テキストファイルが入っているフォルダには対象のテキストデータのみ入っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数シートの複数列に入力されているデータを重複なしで抽出するVBAを作りたいです。 9 2022/06/17 10:33
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) bashのgrepで複数の検索、かつスクリプト内で改行する方法を教えてください。 1 2022/10/06 20:09
- Excel(エクセル) セルの値からファイルを複数作りたい 2 2022/10/06 12:42
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
このQ&Aを見た人はこんなQ&Aも見ています
-
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
Excel.VBA テキストファイルを指定行数からの読み込む
Excel(エクセル)
-
-
4
【VBA】テキストファイルから特定の文字列を抽出して、エクセルに出力する
Excel(エクセル)
-
5
テキストファイルの一部分を抽出する方法について
Visual Basic(VBA)
-
6
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
7
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
8
テキストファイルから指定行をExcelに抽出したい。
Excel(エクセル)
-
9
ExcelVBA テキストファイルから特定行を抽出し、エクセルファイルのテキストボックスに張り付ける
その他(コンピューター・テクノロジー)
-
10
複数テキストファイルをエクセルで開く
Excel(エクセル)
-
11
複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。
Excel(エクセル)
-
12
VBScriptで、ファイルから任意の行のみ取り出す方法について
その他(プログラミング・Web制作)
-
13
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
14
複数のテキストファイルを一括でエクセルに取り込みたい。
Excel(エクセル)
-
15
複数のテキストファイルをエクセルに一括で取り込みたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
VBA★PDFをPDFアプリで印刷し...
-
環境変数の設定について...
-
VBAとResgen.exeを使用して、re...
-
Like演算子で、[と]を文字とし...
-
ExcelVBA:自己のBook名を取得...
-
1行単位のデータをテキストファ...
-
VBAでの共有パスにつきまして
-
EXCEL(VBA)で指定フォルダ内の...
-
リストボックスにファイル名の...
-
batファイルについてです
-
ブラウザからファイルパスを取...
-
エクセルVBAで一つ上の階層...
-
スクリプト を教えてください
-
指定したフォルダ内の最新ファ...
-
VB2008 INIファイル読み込みに...
-
ExcelVBAの使い方 ¥の使い方...
-
xcopyコマンドの進行状況を表示...
-
Eclipse
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
実行ファイルのパスを取得したい
-
コマンドプロンプトのコピー関...
-
VBA★PDFをPDFアプリで印刷し...
-
VBAでパワーシェルを実行したい...
-
ExcelVBAの使い方 ¥の使い方...
-
C#でのProcess.Startと変数path
-
ExcelのVBAで上書き保存を確...
-
開いているファイルを削除し、...
-
アプリケーションのインストー...
-
【VBA】複数のtxtファイルから...
-
EXCEL(VBA)で指定フォルダ内の...
-
fopenでのパス指定
-
パスワード保護されたExcelファ...
おすすめ情報
VBAは研究で始めて数カ月といった所です。
因みにコマンドプロンプトを使用してテキストファイルを全て結合する方法も拝見しました。
(参考 https://oshiete.goo.ne.jp/qa/7852408.html)
こちらのアプローチ(一つずつでなく全て結合してから)で処理した方が早いでしょうか?