トップページ > プログラム > 2019年02月19日 > VgLhyIar0

書き込み順位&時間帯一覧

24 位/215 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000100102



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 071f-BmB6)
Excel VBA 質問スレ Part59

書き込みレス一覧

Excel VBA 質問スレ Part59
329 :デフォルトの名無しさん (ワッチョイ 071f-BmB6)[sage]:2019/02/19(火) 19:40:34.45 ID:VgLhyIar0
カンマ区切りのCSVファイルを2次元配列に入れたい。

Dim arr()
arr=getCSVData(strFile)


private Function getCSVData(byval ...)as string()
Dim tarArr()
 //処理
getCSVData=tarArr
end Function
こんな感じで配列にして1次元が行、2次元が列に格納したいんですが
ReDim、ReDim Preserveのタイミング等々が分かりません。

先に一度開いて行数と列数の最大を取得してからReDimでtarArrを2次元配列にし、もう一度開いて一行ずつ読み取ってカンマ区切りをsplitして配列に入れてからUBound分ループしてtarArrに入れる方法ですかね?
Excel VBA 質問スレ Part59
339 :デフォルトの名無しさん (ワッチョイ 071f-BmB6)[sage]:2019/02/19(火) 22:45:04.21 ID:VgLhyIar0
>>330
自分でも調べてたけど、「最後の要素しか増やせない」って同じこと書いてありました。これは
例えば、行数読んだ結果がLcnt=10だとして
まず

ReDim(Lcnt,0)で作り
配列(0 to 10,0)ができ
Redim Preserve(Lcnt,Ubound(Split(1行目))
区切った値が5なら
配列(0 to 10,0to5)が出来てしまい、いっぺんに右の要素数が変更されるってことで合ってます?
と言うことは、1行目が5列で次に読んだ2行目が3列なら右の要素数は3に減るって事ですかね?
ifか何かで要素数は増える時だけRedim Preserveのが良いですかね?


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。