• 締切済み

テキストファイルからの任意データの抜き出し

テキストファイルから下記のデータを取り出したいです。 どうすればいいでしょうか?(エクセルのVBAでできますか?) (やりたいこと) ・行の先頭から始まる000*******の数字を取り出す。 (******は任意の数字。注意点:00000*****には続けて、アルファベットや漢字が続く。また他の箇所にも数字があるが、行の先頭から始まるものだけをとりだしたい。) ・任意の文字列のあとの数字を取り出したい。 (注意点:数字の桁数はさまざまである。) 下記にイメージのテキストファイルとそれをもとにやりたいことを記載します。 だれかご教授ください。 お願いします。 (イメージ) ABC 00005674 あいうえお 0000012345ABCDEF かきくけこ さしすせと 213223434 いろは98989898 ABC 00005675 あいうえお 0000012346ABCDEF かきくけこ さしすせと 213223434 いろは34343434 ABC 00005676 あいうえお 0000012347ABCDEF かきくけこ さしすせと 213223434 いろは1212 (次のように取り出したい。) 0000012345   98989898 0000012346   34343434 0000012347    1212   

みんなの回答

noname#140971
noname#140971
回答No.5

全て対応できます。

noname#140971
noname#140971
回答No.4

補足: ? "0000" & Trim(Str(Val(CutStr("ABC 00005674 あいうえお", "0000", 2)))) 00005674 こんな手も・・・。

lasm
質問者

補足

回答ありがとうございます。 (イメージ)で下記の部分に関してですが、 ”ABCDEF かきくけこ さしすせと 213223434” この部分も実は、固定の文字列、数字ではなく、いろんな文字列、数字がならびます。 このような状況でも、上記関数で対応できるのでしょうか? (理解してなくてすみません。) ”いろは”は常に固定です。 説明不足で申し訳ありせんでしたが、 下記のようなイメージもありうるということです。 (すみません。) (イメージ) ABC 00005674 あいうえお 0000012345NFFDEF かきくけこ さしすせと 213223434 いろは98989898 ABC 00005675 あいうえお 0000012346ABFGHJ かきくけこ さしすせと 3334 いろは34343434 ABC 00005676 あいうえお 0000012347ASADEF かきまみあかさた あいう 2132 いろは1212

回答No.3

ABC 00005674 あいうえお 0000012345ABCDEF かきくけこ さしすせと 213223434 いろは98989898 1行の中で 区切りが何ヶ所かありますが 全角スペースでしょうか 半角スペースでしょうか タブですか TXTは固定の場所の固定の名前のファイルなのでしょうか ファイルはたくさんあるのでしょうか 1ファイルの中に行数はたくさんあるのでしょうか 良ければ教えてください

lasm
質問者

補足

ご回答ありがとうございます。 >全角スペースでしょうか 半角スペースでしょうか タブですか 全角スペースです。 >TXTは固定の場所の固定の名前のファイルなのでしょうか PDFファイルからテキストをコピーしてtxtファイルに張り付けたものですので、ファイル名は任意の名前で任意の場所です。 >ファイルはたくさんあるのでしょうか ファイルは1ファイルです。 >1ファイルの中に行数はたくさんあるのでしょうか はい。 行数は100行ほどです。

noname#140971
noname#140971
回答No.2

[イミディエイト] ? CutStr(CutStr("ABC 00005674 あいうえお", "ABC", 2), " ", 2) 00005674 ? Format(Val(CutStr("ABC 00005674 あいうえお", "ABC", 2)),"00000000") 00005674 ? CutStr("いろは98989898", "いろは", 2) 98989898 ? CutStr("いろは34343434", "いろは", 2) 34343434 Excel 2003 のイミディエイトウインドウでの抜き出しテストです。 次の CutStr関数一つでも工夫しだいでは・・・。 <標準モジュール> Public Function CutStr(ByVal Text As String, _             ByVal Separator As String, _             ByVal N As Integer) As String   Dim strDatas() As String      strDatas = Split("" & Separator & Text, Separator, , 0)   CutStr = strDatas(N * Abs((N <= UBound(strDatas)))) End Function

lasm
質問者

補足

ありがとうございます。 基本的なことがわかってないのですが、、 これらの内容をエクセルのどの画面に入力すればいいのでしょうか?

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>テキストファイルから下記のデータを取り出したいです。 >どうすればいいでしょうか?(エクセルのVBAでできますか?) 簡単なのは、秀丸のような正規表現をサポートするエディタで要らない部分をスペースに置換する

関連するQ&A