要望ボックスへ
回答一覧へ

2022/02/27【ID:0】

【3】要望ボックス

CSV読込について、YouTubeやネットで調べたもので試したのですが、
(参考:https://www.youtube.com/watch?v=xHmiB_XnIyM
1行で出力されてしまいます。
なぜでしょうか?

【回答】

この原因は「改行コード」にあります。
全ての文字には文字コードと呼ばれるコードが割り当てられています。
「改行」も、「改行」という文字になります。

ややこしいことに、この「改行」には複数のものが存在します。
それは「CR、LF、CR+LF」です。
一般的に、Windowsでは「CR+LF」、MacOSでは「CR」、UNIXでは「LF」が使われています。

参考動画のプログラム内の「Line Input」では、「LF」コードのみで改行されたデータを1行ずつ読み取ることができません。
そのため、1行で取得されてしまいます。

改修方法としたら、1行で取得された内容をSplitで「LF」コードで分割して実行すると良いです。

具体的な方法として、参考動画について解説します。
プログラム内の「Line Input」は、 「Line Input」 した内容が1行ずつという前提で、その情報を「,」区切りで配列に格納しています。

この1行ずつという手順を追記することで解決します。

改行コードが「LF」の場合は、この前提が使えなくなります。
なので、取得したデータを「LF」ごとに分割し、配列に格納します。
※「vbLf」とは「LF」コードを意味します。

「LF」ごとに分割された配列のデータを1行ずつ読み込むようにすることで解決します。

<補足>

画像のプログラムでは、1行ずつのデータを「lists」に格納して、「list」に1行ずつを渡しています。
必要に応じて、下記のような変数宣言を追記した方がよいです。

Dim list As Variant, lists As Variant

パソコンで開く場合は、共有用のリンクコピーがあるのでご活用ください!


是非、シェアお願いします!

  リンクコピー Twitter Facebook はてなブックマーク Pocket
要望ボックスへ
回答一覧へ

- 関連記事 -



- 他の記事 -





要望ボックスへ
回答一覧へ