• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テキストファイルの一部分を抽出する方法について)

テキストファイルの一部分の抽出方法

このQ&Aのポイント
  • テキストファイルの中から特定の部分を抽出する方法についてご質問があります。
  • ログファイルのようなテキストファイルの中から必要な情報だけを抽出したい場合、ExcelのVBAを使用することで効率的に処理できます。
  • 具体的な例として、テキストファイル内の特定の行から次に出てくる特定の行までを抽出する方法を考えています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

古いVBAで、とりあえずご提示された条件を満たすだけの最低限の内容ですが。 Sub Data_Extract() Dim TextLine As String Dim Cell_Row As Long Dim Atama_Four As String Dim SW As Integer Cell_Row = 0 SW = 0 Open "c:\Data.txt" For Input As #1 Do While Not EOF(1) Line Input #1, TextLine ' 行中に"顧客番号"という文字を発見した場合にスイッチを入れる If InStr(1, TextLine, "顧客番号") <> 0 Then SW = 1 End If ' SWが1で、かつ行中に"行取得しました。"という文字を発見した場合にスイッチを切る If InStr(1, TextLine, "行取得しました。") <> 0 And SW = 1 Then Cell_Row = Cell_Row + 1 Cells(Cell_Row, 1) = TextLine SW = 0 End If 'スイッチが入っていればその行を書き出す If SW = 1 Then Cell_Row = Cell_Row + 1 Cells(Cell_Row, 1) = TextLine End If Loop Close #1 End Sub

einsiedler
質問者

お礼

こちらの希望する通りのご回答、ありがとうございます! 確認させていただいた瞬間、感動さえ覚えました。 ご回答の内容に加えて、対象ファイルを選択する方法を組み込めば 目的は達成できそうです。 本当にありがとうございました!

その他の回答 (1)

  • finabi
  • ベストアンサー率0% (0/3)
回答No.1

逆に質問を。 このログに対してあなたが何らかの仕様を追加できますか? もしできるのであれば簡単な方法があります。 たとえばほしいデータの最終行にvbtab等のコードを入れておけば そのコードが出現するまでデータをExcelシートに書き込み続ける。 といった方法があります。 もしくは、【行取得しました。】という文字列が入った一行が出るまで シートに書き込んでもいいでしょう。 しかし、ヒットしたデータまでログに履く仕様ってどうなんだろうとは思いますが。

einsiedler
質問者

お礼

なるほど、そのような方法があるのですね。 ただ、ログに対しての仕様追加は残念ながらできません。 ですので、一テキストファイルと考えて、 一度Excelで開いてから(情報はA列にしか入りませんが) 部分選択⇒切り貼りが一番手っ取り早いかと考えるのですが、 そのうまいやり方わかりません…。 ご回答(ご質問)ありがとうございました。

専門家に質問してみよう