推しミネラルウォーターはありますか?

テキストファイルから下記のデータを取り出したいです。
どうすればいいでしょうか?(エクセルのVBAでできますか?)

(やりたいこと)
・行の先頭から始まる000*******の数字を取り出す。
(******は任意の数字。注意点:00000*****には続けて、アルファベットや漢字が続く。また他の箇所にも数字があるが、行の先頭から始まるものだけをとりだしたい。)
・任意の文字列のあとの数字を取り出したい。
(注意点:数字の桁数はさまざまである。)
下記にイメージのテキストファイルとそれをもとにやりたいことを記載します。
だれかご教授ください。
お願いします。

(イメージ)
ABC 00005674 あいうえお
0000012345ABCDEF かきくけこ さしすせと 213223434
いろは98989898

ABC 00005675 あいうえお
0000012346ABCDEF かきくけこ さしすせと 213223434
いろは34343434

ABC 00005676 あいうえお
0000012347ABCDEF かきくけこ さしすせと 213223434
いろは1212

(次のように取り出したい。)
0000012345   98989898
0000012346   34343434
0000012347    1212   

A 回答 (5件)

全て対応できます。

    • good
    • 0

補足:



? "0000" & Trim(Str(Val(CutStr("ABC 00005674 あいうえお", "0000", 2))))
00005674

こんな手も・・・。

この回答への補足

回答ありがとうございます。

(イメージ)で下記の部分に関してですが、
”ABCDEF かきくけこ さしすせと 213223434”
この部分も実は、固定の文字列、数字ではなく、いろんな文字列、数字がならびます。
このような状況でも、上記関数で対応できるのでしょうか?
(理解してなくてすみません。)
”いろは”は常に固定です。

説明不足で申し訳ありせんでしたが、
下記のようなイメージもありうるということです。
(すみません。)

(イメージ)
ABC 00005674 あいうえお
0000012345NFFDEF かきくけこ さしすせと 213223434
いろは98989898

ABC 00005675 あいうえお
0000012346ABFGHJ かきくけこ さしすせと 3334
いろは34343434

ABC 00005676 あいうえお
0000012347ASADEF かきまみあかさた あいう 2132
いろは1212

補足日時:2007/10/20 12:40
    • good
    • 0

ABC 00005674 あいうえお


0000012345ABCDEF かきくけこ さしすせと 213223434
いろは98989898

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

この回答への補足

ご回答ありがとうございます。

>全角スペースでしょうか 半角スペースでしょうか タブですか
全角スペースです。

>TXTは固定の場所の固定の名前のファイルなのでしょうか
PDFファイルからテキストをコピーしてtxtファイルに張り付けたものですので、ファイル名は任意の名前で任意の場所です。

>ファイルはたくさんあるのでしょうか
ファイルは1ファイルです。

>1ファイルの中に行数はたくさんあるのでしょうか
はい。
行数は100行ほどです。

補足日時:2007/10/20 12:36
    • good
    • 0

[イミディエイト]


? 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

この回答への補足

ありがとうございます。
基本的なことがわかってないのですが、、

これらの内容をエクセルのどの画面に入力すればいいのでしょうか?

補足日時:2007/10/20 12:34
    • good
    • 0

>テキストファイルから下記のデータを取り出したいです。


>どうすればいいでしょうか?(エクセルのVBAでできますか?)
簡単なのは、秀丸のような正規表現をサポートするエディタで要らない部分をスペースに置換する
    • good
    • 0

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

関連するカテゴリからQ&Aを探す