タイトルの様なコードご存じないでしょうか?
具体的には
①下記の様なテキストファイルがあり、[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】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
テキストファイルの一部分を抽出する方法について
Visual Basic(VBA)
-
【VBA】テキストファイルから特定の文字列を抽出して、エクセルに出力する
Excel(エクセル)
-
-
4
テキストファイルから指定行をExcelに抽出したい。
Excel(エクセル)
-
5
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
6
ExcelVBA テキストファイルから特定行を抽出し、エクセルファイルのテキストボックスに張り付ける
その他(コンピューター・テクノロジー)
-
7
複数のtxtの特定部分を抽出し、一つのxlsファイルにまとめたいです。
Excel(エクセル)
-
8
[エクセル VBA]テキストファイルから特定の行のみを抜き出したい 下記のようなテキストファイルから
Excel(エクセル)
-
9
複数のテキストファイルをエクセルに一括で取り込みたい
Excel(エクセル)
-
10
テキストファイルの途中行から読み込む方法について
Visual Basic(VBA)
-
11
テキストファイルから特定の文字列が入った行を取得したいです。 例えば下記のような文が記載されたテキス
Visual Basic(VBA)
-
12
Excel VBAでフォルダ内の全テキストファイルの任意データを取得について
Visual Basic(VBA)
-
13
VBAでテキストファイルを複数開いて順番に処理する方法がわからないです。
Visual Basic(VBA)
-
14
ある文字列を含む行の抽出
Excel(エクセル)
-
15
バッチでテキストファイルから任意の行のみ取得したい
その他(プログラミング・Web制作)
-
16
複数のテキストファイルを一括でエクセルに取り込みたい。
Excel(エクセル)
-
17
特定フォルダ内のテキストファイルの内容を全てエクセルに書き出す方法
Visual Basic(VBA)
-
18
Excel VBA:特定の文字列以降(あるいは以前)のテキストをすべて取得する方法
Visual Basic(VBA)
-
19
同一フォルダにある複数のテキストファイル(メモ帳)を一括でエクセルに取り込みたいです。
Visual Basic(VBA)
-
20
Excel.VBA テキストファイルを指定行数からの読み込む
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
エクセルのマクロで特定フォル...
-
ExcelVBAの使い方 ¥の使い方...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
Eclipse
-
エクセルVBAで一つ上の階層...
-
VBAでの共有パスにつきまして
-
xcopyコマンドの進行状況を表示...
-
ExcelのVBAで上書き保存を確...
-
【VB.NET】App.configにファイ...
-
setcurrentdirectoryのパス拡張...
-
SaveAsの保存先について
-
A列に記載されているフォルダ...
-
【VBA】ExcelマクロでCSVファイ...
-
【VB6】デバイスマネージャを表...
-
ShellExecuteでエクセルファイ...
-
アプリケーションのインストー...
-
VBAでテキストファイル中の文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
VBAでパワーシェルを実行したい...
-
VBA一覧取得 再投稿
-
【VB.NET】App.configにファイ...
-
エクセルVBAで一つ上の階層...
-
初心者powershellのPS1ファイル...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
SaveAsの保存先について
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
【VBA】ExcelマクロでCSVファイ...
-
xcopyコマンドの進行状況を表示...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
-
開いているファイルを削除し、...
おすすめ情報
VBAは研究で始めて数カ月といった所です。
因みにコマンドプロンプトを使用してテキストファイルを全て結合する方法も拝見しました。
(参考 https://oshiete.goo.ne.jp/qa/7852408.html)
こちらのアプローチ(一つずつでなく全て結合してから)で処理した方が早いでしょうか?