人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAのテキストインポートの際の改行コードについて教えてください。

テキストファイルをインポートし、テーブルに格納するつもりですが、
どうやら改行コードが認識されていないようです。
フィールド区切りは問題ないのですが、改行コードを認識せず、ひとつのレコードとしてすべて読み込まれています。

該当部分ですが、
FileName = TestGetFileName 'ファイル指定のfunction

lngFileNum = FreeFile()
Open FileName For Input As #lngFileNum

Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("Order")

Do Until EOF(lngFileNum)
Line Input #lngFileNum, strData

varData = Split(strData, ",", , vbTextCompare) 'ここでカンマ区切りにしてるけど、改行コードが無視されているらしい

となっています。
元ファイルを書き換える方法なら動いたのですが、事情によりこの方法は使えません。
インポートした時点で処理したいのですが、どなたかおしえてください。

●質問者: きあ
●カテゴリ:コンピュータ
✍キーワード:AS open SET VBA ひとつ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● きゃづみぃ
●35ポイント

Line Input #は 改行コードまで読み込み、改行コード自体は 読み込まない仕様になっています。

なので 改行が含まれている文字列を読み込みしたい場合は、Getなどを用いて処理したほうがいいでしょう。

http://officetanaka.net/excel/vba/statement/Get.htm

◎質問者からの返答

getで読み込んだことがないのでこの機会に試してみたいと思います。ありがとうございました。


2 ● Mook
●100ポイント ベストアンサー

Scripting ライブラリの FileSystemObject を使用した例ですが、

 Sub test()
 Filename = TestGetFileName  'ファイル指定のfunction
 
 Dim fso
 Set fso = CreateObject("Scripting.FileSystemObject")
 
 Set dbs = CurrentDb
 Set rst = dbs.OpenRecordset("Order")
 
 For Each strData In Split(fso.OpenTextFile(Filename).ReadAll(), vbLf)
 varData = Split(strData, ",", , vbTextCompare)
 :
 :
 Next
End Sub

という感じでできないでしょうか。

◎質問者からの返答

さすがです!動きました!

回答のものをもうちょっと噛み砕いてみたいと思います。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ