新規投稿
フォローする

Kintone から出力した CSV を VBA Line Input で読み込むと常に1件になります。

 

Kintone で出力した CSV ファイルを VBA の Line Input で読み込んでも Line 単位の読み込みができません。

■ユーザーシナリオ

CSVの文字列(日付もあり)は Excel で開くと自動で日付変換されてしまうため、Excelの「Textファイルとして読み込む機能」で文字列として読み込むことに成功。ただし、文字列複数行の項目の改行も行末と判断されるため、そこで別の行扱いとなってしまう。そのため、文字列間の改行コードを事前に他の文字列に変換しようと VBAで CSVをFileとして読み込み、Line Inputで読み込んだが、常に1件で終了してしまいます。

■  VBA Code

Open Kintoneで出力したCSVファイル For Input As #1
Do Until EOF(1)
 Line Input #1, buf

Loop

■Result

Loop しない(常に件数は1件)

■Expect

データの件数分 Loop

■Comment

・Kintoneで出力したデータの行末は[CRLF]でなく[LF]

Kintoneで出力した項目(文字列複数行)データの改行も[LF]の為、他のテキストアプリでも一括置換ができない

・Line Input でLineが取得できれば、行末の[LF]のみ[CRLF]としたい

・Line Input 方法以外でも、ユーザーシナリオをカバーできる方法があればご教授をお願いいたします。

0

1件のコメント

Avatar
m.kohashi

LFを含む文字だとEOFまで読み込むのは仕様でした。INPUTでCELLの数だけ読み込んで、行判断を行って出力するようにいたしました。

この方法が最適だと思いませんが、自己解決いたしました。

0
ログインしてコメントを残してください。