エクセルVBAでのCSV読み込み

データに半角のカンマが含まれる可能性がある場合は、データをダブルクォーテーションで囲んで、区切り文字としてカンマが使われる

プロンプトで指示する場合にダブルクォーテーションの指示文自体を””で囲んで文字列指示と認識してしまうことが多いので、下記のように、コード番号で指定すると正しい結果が得らやすい

Splitの区切り文字は、Chr(34) & “,” & Chr(34)
データは Chr(34)で囲まれて、カンマで区切られている
データ内に半角のカンマが含まれている可能性があるので、 Chr(34)で囲んでいる

例(現時点での応答結果で、今後は同じプロンプトでも正しい回答となっていくと思われる)

例 以下のプロンプトの応答結果は誤っていた

エクセルのVBAで、指定したパスにあるCSVファイルをシートへ取り込むコードを作成して
データは、””で囲まれています

結果は、コメントには記載されているものの、実際には下記のように通常のカンマを区切り文字に指定したコードが生成された

‘ ダブルクォーテーションで囲まれたデータを分割
values = Split(CleanCSVLine(lineText), “,”)

下記のように追加で、borderを指定する ”をアスキーコードで指定

split(CleanCSVLine(lineText), “,”)をborder = Chr(34) & “,” & Chr(34)で作成して

結果は、以下のようにレコードの最初と最後の”も正しく取り除く処理コードが生成された

‘ 区切り文字:「”,”」をChr関数で表現
border = Chr(34) & “,” & Chr(34)

‘ 最初と最後の ” を削除
If Left(lineText, 1) = “””” Then lineText = Mid(lineText, 2)
If Right(lineText, 1) = “””” Then lineText = Left(lineText, Len(lineText) – 1)

‘ “,” で分割
values = Split(lineText, border)