一連の流れを書き出してみよう
①テキストファイル(CSVファイル)を開く
②1行ずつ変数に格納する
③Split関数でバリアント型変数に配列としてCSVデータを格納する
④配列の最初の要素(製品番号)を使って同じ製品番号の行番号を取得する
⑤配列の次の要素(内示1「日付:数量」)をMid関数を使って日付と数量に分割する
⑥分割した日付を使って同じ日付の列番号を取得する
⑦取得した(行, 列)番号のセルに数量を代入する
⑧要素の終わりまで(内示1から内示10まで)⑤~⑦を繰り返す
⑨テキストファイルの最終行まで、②~⑧を繰り返す
⑩テキストファイルを閉じる
星くんは自分で書き出した処理の流れを見て、目をシロクロさせました。
「…うわあ…。これは、大変だあ。
でも、こうやって書き出してみると、今までボンヤリしていた部分が、はっきりしてくるな。
この一連の処理では、最低でも4つのループをネストしなきゃならないぞ。
テキストの読み取り、製品番号の検索、日付の検索、内示1~10の処理、
この4つの繰り返し処理を組み合わせる必要があるんだ…」
星くんはVBEを起動すると、カタカタとコードを打ち込みはじめます。
「"とりあえず、わかるところからコードに書いていけ!"は、
八木が教えてくれた開発の鉄則だったな」
Sub CSVデータ取り込み()
Dim buf As String
Dim v As Variant
Open ThisWorkbook.Path & "\Sample.csv" For Input As #1
Do Until EOF(1)
Line Input #1, buf
v = Split(buf, ",")
Loop
Close #1
End Sub
「よし。これで、テキストファイルを開き、1行ずつ変数に格納、
バリアント型変数vの配列にCSVデータを格納する、というところまではオッケーだ。次は…」
カタカタカタ…。