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右図のとおりです。