|
▼なな さん:
こんにちは〜
>CSV内のデータ
>"111","222","333","444","555"
>"666","7,77","888","999","10000"
>上記のようなcsvデータがあって、
>Splitでカンマの位置で分割して配列にしているのですが、
こんな方法はどうでしょう?
一行データの【"】を区切り記号としてSplitして、
ひとつ置きに配列に格納しています。
例
>"666","7,77","888","999","10000"
これをダブルクォートで Splitすると、
(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
"" 666 , 7,77 , 888 , 999 , 10000 ""
となるので、(1),(3),(5),(7),(9) 番目のデータを配列に入れる
という塩梅です(^^
Sub Try1()
Dim myCSV As String
Dim Fso As FileSystemObject
Dim ss As String
Dim data, v
myCSV = "D:\(Data)\CSVs\カンマ入ダブルクォート.csv"
Set Fso = New FileSystemObject
With Fso.OpenTextFile(myCSV)
ss = .ReadAll
.Close
End With
data = Split(ss, vbCrLf)
Const WQuote = """"
Dim i As Long, j As Long, k As Long, n As Long
n = UBound(data) - 1
ReDim myData(1 To n, 1 To 5)
For i = 1 To n
v = Split(data(i), WQuote)
k = 0
For j = 1 To UBound(v) Step 2
k = k + 1
myData(i, k) = v(j)
Next
Next
ActiveSheet.Range("A2").Resize(n, 5).Value = myData
End Sub
|
|