top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(28)

開発事例(22)

シート・セル操作(18)

図形操作(13)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

設計思想(7)

開発効率化(6)

数学(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

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

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

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

OneDrive(2)

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

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

クラスモジュール(2)

ステータスバー(1)

コード解析(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

カーソル操作(1)

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

【開発事例】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

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

  • Facebook
  • Twitter
  • YouTube

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

bottom of page