要望ボックス

トップ > 要望ボックス > 回答一覧 > 記事
要望ボックスへ
回答一覧へ



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


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





リンクの共有はこちらから行えます。

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


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

5065971

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール

トップ > 要望ボックス > 回答一覧 > 記事
要望ボックスへ
回答一覧へ