CSVファイルをダブルクリックすると通常はExcelが起動して、データを分割してセルに格納してくれますが、[余計なお世話]がいやななときは、テキストファイルとして読み込んで処理します。
‥,"文字列",数値,‥ のように、各データが、文字列は["]で囲まれ、数値はそのままの形で[,]により区切られているCSVファイルで、文字列の中に[,]を含んでいるかもしれないとき、各データを配列に入れて返すプロシージャです。
ただし、文字列の中に[タブ]を含んでいるときは使用できません。
サンプルCSVファイルの内容は、
-----
"S","23 MG","",7,1,10/12/25,"001102",754800.00,"xyz-SP,mk","400/440",11/12/04
-----
です。
'Excelシートで、1行をコピーし、テキストエディタの画面に貼り付けると、
'セルのデータがタブで区切られて貼りつけられます。
'こんなデータには、適用不可です。
’ただし、こんな時は単純にtabで切り出すだけでデータを取り出せます。
DoEvents
Loop
'配列に入れて返す
SplitByComma = Split(Left(buf, Len(buf) - 1), vbTab, , vbTextCompare)
End Function
実行結果はn右図のとおりです。