こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excel VBAでの固定長のテキストファイル読み込み

こんにちは。
会社にてEXCELをちょろっとかじっていると言う理由から、あまり触ったことのないVBAを使って固定長のテキストファイルを読み込むプログラムを作るように言われてしまって困っています。
利用している固定長のテキストファイル中の各行の桁数は同一でなく、行によってまちまち。しかし、各行の始めの3ケタはヘッダになっています。
例)
ABCTTTTTTTTTTTTTTTTKKKKKOOOOOOPPPPPPPPWWWWWWWWWWWWWWWWWWWWWWWSS
XYZLLLLL
<ABCとXYZがヘッダ。同じ文字が固定長で決まったあるデータ項目と考えて下さい>
もちろん、1ファイルにはもっとたくさんの行がずらずら並んでおります。
中身自体は、ある伝票の内容なのですが、1ファイル中には複数の伝票内容(ヘッダABC~XYZで1伝票)が記されております。
なので、ヘッダで言うとABC,DEF,GHI...XYZとなってまたABC~が続く。
しかも、ある伝票では途中存在しないヘッダがあったり、同じヘッダが何回も繰り返されたりするものもあります。
(ABC,DEF,DEF,DEF,GHI..やABC,GHI,JKL..など)
これをどうやってEXCELの各セルに貼り付けるかがどう頑張っても分かりません。どうすればよいのでしょうか?

投稿日時 - 2010-02-18 14:41:38

QNo.5686764

困ってます

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

もう一方のアカウントで同じ質問をされていたので、
もう一方のアカウントに対しマルチポストとして通報させていただきました。

以上。

投稿日時 - 2010-02-18 17:05:33

お礼

別質問の方へ今回の件、説明させていただいてます。
また、別の方の質問も締め切らせていただきました。

投稿日時 - 2010-02-18 17:32:57

ANo.1

VBAで文字列の一部を抜き出すのはMID関数です
これ↓で、「TTTTTTTTTTTTTTTT」を取り出せます

 tx = "ABCTTTTTTTTTTTTTTTTKKKKKOOOOOOPPPPPPPPWWWWWWWWWWWWWWWWWWWWWWWSSXYZLLLLL"
 moji1 = Mid(tx, 4, 16) '4文字目から16文字分

また、ヘッダー「XYZ」の場所を探すには
 hd2 = InStr(1, tx, "XYZ")
です

投稿日時 - 2010-02-18 15:27:59

あなたにオススメの質問