【開発事例】CSV変換作業を「設定+ボタン1つ」で完結させるExcel VBAツールの構築
- yuji fukami
- 1月22日
- 読了時間: 4分

背景:システム間連携で必ず発生するCSV変換作業
企業で業務システムを運用していると、あるシステムからCSVでデータを出力し、別のシステムへ取り込むという作業は避けて通れません。
特に、
受注管理システム
出荷・在庫管理システム
会計・請求システム
のように、別会社が開発したシステム同士を組み合わせて使っている場合、CSVをそのまま取り込めるケースはほぼありません。
その結果、CSVの変換作業が現場で発生します。
よくある問題:CSV変換が手作業になっている
今回のご相談でも、CSV変換は次のような流れでした。
CSVをExcelで開く
不要な列を削除する
日付や文字列を修正する
不足している情報を追加入力する
この作業は一見単純ですが、
作業者によって手順が違う
ルールが属人化する
ミスが起きやすい
という問題を抱えています。
実装した仕組み:CSV変換ルールを「設定」で完結させる
そこで今回構築したのが、CSV変換ルールをあらかじめExcel上で設定しておき、実行時はボタン1つで変換できる仕組みです。
基本コンセプト
変換ルールは事前に設定
実行時は「ファイル選択 → 変換実行」だけ
元のCSVは一切加工しない
この構成により、日常作業として誰でも安全に使えるツールを目指しました。
CSV変換で扱うルールを整理する
(※ 下の図を見ながら読み進めてください)

CSV変換作業を整理すると、実際に行っている処理は 大きく3種類 に分けられます。今回のExcel VBAツールでは、これらを すべて図の設定エリアで完結できる構成 にしています。
① 列の移動・転記
(図:左側「変換元CSV → 変換後フォーマット」の対応関係)
まず基本になるのが、元CSVの「どの列」から、変換後CSVの「どの列」へ転記するかという設定です。
図の左側では、
変換元CSVの列一覧
変換後フォーマットの列一覧
を並べて表示し、転記先の列番号を指定するだけで対応付けできるようにしています。
このツールでは、
列名ではなく
列番号ベース
で指定する仕組みにしています。
これにより、CSVの項目順が変更された場合でも、比較的影響を受けにくく、現場で調整しやすい構成になります。
② 値の変換(加工・表示形式変更)
(図:中央〜右側「変換数式入力」エリア)
次に多いのが、値そのものを加工・変換するケースです。
図の右側にある「変換数式入力」エリアでは、
日付形式の変更
文字列の結合(住所など)
表示形式の調整
といった処理を、Excelのワークシート関数で直接設定できます。
特別なマクロ知識は不要で、
TEXT
DATEVALUE
TIMEVALUE
文字列結合
など、普段Excelを使っている方であれば理解できるレベルで変換ルールを作れるようにしています。
③ 不足している情報の補完
(図:右側「固定情報設定」「マスター参照」)
システム間連携では、元CSVに そもそも存在しない情報 が必要になるケースも多くあります。
例えば、
管理用ID
取引先ごとの固定コード
商品情報・SKUなどのマスター情報
こういった情報については、
固定値として直接入力する
別シートに用意したマスターを参照する
という形で、現場側で自由に補完できる構成にしています。
マスター参照についても、VLOOKUP等のExcel関数を使う前提のため、仕様変更があっても現場で対応可能です。
操作の流れ:設定後はボタン1つで変換
実際の操作手順は非常にシンプルです。
変換対象のCSVファイルを選択
事前に設定した変換ルールを確認
「変換実行」ボタンをクリック
これだけで、
元CSVを壊さず
変換後CSVを新規ファイルとして出力
できます。
日常業務では設定作業は最初の一度だけで、以降は誰でも同じ手順で使えます。
開発者視点:なぜ変換ルールをプログラムに埋め込まないのか
ここからが、開発者として特に意識したポイントです。
もし、
列の移動
値の変換
固定情報の設定
といったルールをすべて**VBAコードに直接書いてしまう(ハードコーディング)**と、
ルール変更のたびに修正依頼が必要
現場では何も触れない
運用コストが増え続ける
という状態になります。
CSV変換ルールは、現場の都合で変わることが前提です。
だからこそ、
VBAは「変換処理の枠組み」だけを担当
変換ルールはExcel上で可視化
現場で変更・調整できる
という役割分担にしました。
まとめ:CSV変換は「自動化」より「設計」が重要
CSV変換は、単に自動化すれば終わりではありません。
どこが変わるのか
誰が使うのか
変更時に誰が困るのか
そこまで考えたうえで設計することで、初めて 本当に使われるツールになります。
今回のExcel VBAツールは、その一例として構築したものです。



