【エクセル】CSVを定義情報シートに従い配置するマクロ

仕事でテストを担当しました。その際、CSVが正しく出力されているか、を確認するためエクセルを作成しました。改造して色々使えそうなのでブログにメモしておきます。

エクセルBOOKイメージ

CSV.sheet、Definition.sheet、output.sheetを用意してください。以下の通りです。

【CSV.sheet】CSVを貼り付けるsheet(編集元情報)

【output.sheet】CSVを要素毎に貼り付け結果sheet(編集後情報)

【Definition.sheet】貼り付ける位置を定義するsheet(定義情報)

上からCSVの要素順に従い貼り付け位置の定義をしています。上記イメージでは、CSVの2要素目は4行目に貼り付けることを意図しています。

エクセルマクロ

コーディングの良し悪しは、意見あると思いますが、マクロの記録機能を使って作成した様なわかりやすさと明確な機能単位分けを心がけました。Definition.sheetの貼り付け位置(行)定義に従い、output.sheetの配置していきます。列はCSVの行数としています。

このサンプルでは、定義情報に列の定義のみ設定していますが、カンマにより他の情報も付加できます。例(列,行)を設定すると、hai_teigiの要素番号(0,1)を指定することで、それぞれの値を取得できます。これを Cells(CInt(hai_teigi(0)), arg2).Value = hai_csv(i) に変更を反映することで、例えば、CSVの1要素毎に定義された行、列に設定することも可能です。色々、いじってみてください。

それでは!