トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 新たなる挑戦編: 第10話「取り込み処理の流れ」2/4 :一連の流れを書き出してみよう

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第10話 「取り込み処理の流れ」

一連の流れを書き出してみよう

①テキストファイル(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データを格納する、というところまではオッケーだ。次は…」
カタカタカタ…。

一覧にもどる