CSVの各要素を配列に代入

CSVファイルの1行のデータを渡すと、各要素が入った1次元の配列を作成して返します。(動的配列の使用サンプル)

VB6の場合、同じ動きをするSplit関数ってがあるので意味ないんですけどね・・・。


Private Function CSVtoDisposion(CSV_SOURCE As String) As Variant

    Dim Work_str() As String
    Dim COMMA_Count As Integer
    Dim I As Integer
    
    'CSV→配列変換
    
    'カンマの数を取得
    COMMA_Count = 0
    For I = 1 To Len(CSV_SOURCE)
        If Mid(CSV_SOURCE, I, 1) = "," Then
            COMMA_Count = COMMA_Count + 1
        End If
    Next I
    
    '配列の割り当て
    ReDim Work_str(COMMA_Count)
    
    '配列の初期化
    For I = 0 To UBound(Work_str)
        Work_str(I) = ""
    Next I
    
    '各配列に項目の内容をセット
    COMMA_Count = 0
    For I = 1 To Len(CSV_SOURCE)
        If Mid(CSV_SOURCE, I, 1) = "," Then
            COMMA_Count = COMMA_Count + 1
        Else
            Work_str(COMMA_Count) = Work_str(COMMA_Count) + Mid(CSV_SOURCE, I, 1)
        End If
    Next I
    
    '配列を戻り値にセット
    CSVtoDisposion = Work_str

End Function

1次元の動的配列を作成し、カンマの数をカウントして配列を再定義して、CSV各要素の内容を各配列の要素にセットしています。

使用方法は

Dim varHogehoge As Variant

varHogehoge = CSVtoDisposion("1,2,3,4,5")

ちなみに、Split関数なら

Dim varHogehoge As Variant

varHogehoge = Split("1,2,3,4,5", ",")

と、なります。

CSVの各要素取得以外にも、"\"で同じ処理を行えばフルパスの各フォルダ名を取得したり。URLのディレクトリの取得したりできると思います。


[ Window Close ]