top of page

​タグ一覧

配列処理(76)

シート・セル操作(34)

階層化フォーム(33)

ファイル操作(31)

開発事例(26)

図形操作(24)

設計思想(14)

講座実施報告(12)

ユーザーフォーム(10)

開発効率化(10)

コード自動生成(10)

数学(9)

ココナラ(9)

文字列操作(8)

イベントプロシージャ(7)

GAS(7)

Webアプリ(6)

その他(5)

アニメーション(5)

副業(5)

Googleスプレッドシート(4)

OneDrive(4)

技術解説(4)

条件付き書式(4)

イミディエイトウィンドウ(4)

クリップボード(4)

介護・福祉(4)

小説(3)

JavaScript(3)

HTML(3)

公開ツール(3)

クラスモジュール(2)

コード解説(2)

パズル(2)

小ネタ(2)

日報(2)

フリーランス(2)

シフト表(2)

Antigravity(2)

PDF(2)

カレンダー(2)

Enum(2)

LookerStudio(2)

リスキリング(2)

Discord(2)

Outlook(2)

デスクトップアプリ(2)

スクレイピング(1)

WebAPI(1)

PowerShell(1)

文書作成(1)

スプレッドシート(1)

経理(1)

超勉強会(1)

溶接ロボット(1)

楽天市場(1)

VBA不使用(1)

実行予約(1)

CAD(1)

給与計算(1)

QRコード(1)

医療(1)

python(1)

学校(1)

発注書(1)

【開発事例】CSV変換作業を「設定+ボタン1つ」で完結させるExcel VBAツールの構築

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

背景:システム間連携で必ず発生する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つで変換

実際の操作手順は非常にシンプルです。

  1. 変換対象のCSVファイルを選択

  2. 事前に設定した変換ルールを確認

  3. 「変換実行」ボタンをクリック

これだけで、


  • 元CSVを壊さず

  • 変換後CSVを新規ファイルとして出力

できます。


日常業務では設定作業は最初の一度だけで、以降は誰でも同じ手順で使えます。


開発者視点:なぜ変換ルールをプログラムに埋め込まないのか

ここからが、開発者として特に意識したポイントです。

もし、

  • 列の移動

  • 値の変換

  • 固定情報の設定

といったルールをすべて**VBAコードに直接書いてしまう(ハードコーディング)**と、


  • ルール変更のたびに修正依頼が必要

  • 現場では何も触れない

  • 運用コストが増え続ける

という状態になります。


CSV変換ルールは、現場の都合で変わることが前提です。

だからこそ、

  • VBAは「変換処理の枠組み」だけを担当

  • 変換ルールはExcel上で可視化

  • 現場で変更・調整できる

という役割分担にしました。


まとめ:CSV変換は「自動化」より「設計」が重要

CSV変換は、単に自動化すれば終わりではありません。

  • どこが変わるのか

  • 誰が使うのか

  • 変更時に誰が困るのか

そこまで考えたうえで設計することで、初めて 本当に使われるツールになります。

今回のExcel VBAツールは、その一例として構築したものです。

Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

softex-celwareロゴ 透過 横長.png

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page