アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの様なコードご存じないでしょうか?

具体的には
①下記の様なテキストファイルがあり、[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
-----------------------------------------------
(※......の所は不特定の複数列が入ります)

質問者からの補足コメント

  • VBAは研究で始めて数カ月といった所です。

    因みにコマンドプロンプトを使用してテキストファイルを全て結合する方法も拝見しました。
    (参考 https://oshiete.goo.ne.jp/qa/7852408.html)
    こちらのアプローチ(一つずつでなく全て結合してから)で処理した方が早いでしょうか?

      補足日時:2017/11/20 22:16

A 回答 (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\"」は環境に合わせて変更してください(最後の「\」を忘れないように!)
    • good
    • 1

いくつか確認させてください。


①「AAA」と「BBB」の行は必ず存在するのでしょうか?
② テキストファイルの拡張子は「txt」でしょうか?
③ 区切り記号は「 」でしょうか?それとも1行を1つのセルにセットして良いのでしょうか?
④「AAA」と「BBB」の行は出力不要ですか?
⑤ まとめるシートはマクロを記入したファイルに有るのですよね?シート名も教えてください。
⑥ テキストファイルはマクロのファイルと同じフォルダーに有るのでしょうか?
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます
>①「AAA」と「BBB」の行は必ず存在するのでしょうか?
必ず1つずつ存在し、この順番でファイルに現れます。

>② テキストファイルの拡張子は「txt」でしょうか?
そうです

>③ 区切り記号は「 」でしょうか?それとも1行を1つのセルにセットして良いのでしょうか?
どちらでも大丈夫ですが、後者の方がありがたいです。

>④「AAA」と「BBB」の行は出力不要ですか?
出力不要です

>⑤ まとめるシートはマクロを記入したファイルに有るのですよね?シート名も教えてください。
とくにこだわっていませんので、シート名は「sheet1]です

>⑥ テキストファイルはマクロのファイルと同じフォルダーに有るのでしょうか?
異なるフォルダに入れています。
テキストファイルが入っているフォルダには対象のテキストデータのみ入っています。

お礼日時:2017/11/20 22:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A