dポイントプレゼントキャンペーン実施中!

EXCEL VBAでのテキストファイルのレコード読み込みについて教えてください。

EXCEL2003を使用しており、以下のレコードがあるテキストファイルがうまく
読み込めないのです。

レコード:
1件目「123■r456」
2件目「789■r888」

上記レコードをinput text命令で読みこむと1件目は「123」までしか読み込めず
2件目は「456」が読み込まれます。
3件目は「789」で読み込み終了となります。

本当は1件目が「123456」、2件目は「789」と読み込みたいです。

「■r」はホストコンピュータで使用している印刷イメージの制御コードです。

input text命令にオプションはあるのでしょうか?
またinput text命令以外にテキストファイルを読み込む命令はあるのでしょうか?

よろしくお願いいたします。

A 回答 (2件)

下記を参考に、readAllで文字列変数に丸ごと読み込んで


http://officetanaka.net/excel/vba/filesystemobje …
■rのところを、Replace関数などで置換して、
それからSplit関数で改行コードで切り分けるのはどうでしょうか。
事前にテキストエディターで、前処理して取り除くという解もありそうですが。
以上、ご参考まで。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。

mitarashiさんのおっしゃるとおり、実行してみたところうまくいきました。

ありがとうございました。
とても助かりました。

お礼日時:2011/01/24 19:51

http://officetanaka.net/excel/vba/tips/tips73.htm
http://officetanaka.net/excel/vba/tips/tips89.htm
参考。

>input text命令にオプションはあるのでしょうか?
「1行」を読み込む機能か確認。
LINE INPUTでもダメだったか。

>■r
がバイナリでいうとどんな値か。一定値か。
3バイト+"■r"+3バイトと決まった位置に挿入されるかは
わかりませんが、そうなるなら規則的なので、
今の状態から「123■r456」を合成すれば、まだ対処可能です。
質問のための事例、と思われるので、これは規則性があれば、に限られます。


改行コードが1バイト「0D0F」になるので、
1バイトずつ読み込む仕組みに変える。
それで、『「0D0F」になるまでが1行』と解釈すれば対処は可能です。
    • good
    • 0
この回答へのお礼

親身に回答していただきありがとうございます。
とても参考になりました。

今回は「LINE INPUT」でもうまくいきませんでした。
また、規則性のないデータを使用しております。
説明不足で申し訳ありません。。。

すごくわかりやすい説明でとても感激しました。
本当にありがとうございました。

お礼日時:2011/01/24 19:48

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