2022年2月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
