残っているもの
20年前に作られた受注管理 (例)
' frmOrder / cmdRegister_Click()
If Me.txtQty > 100 Then
rate = 0.85
ElseIf cboCustType = "A" Then
rate = 0.9
Else
rate = 1#
End If
' ...外部CSVへ書き出し (bat経由)AIが起こした仕様
コードから読み取った業務ルール
- 数量が100を超える場合、15%を割り引く
- 得意先区分Aは10%を割り引く (数量条件が優先)
- 上記以外は割引なし
- 確定した受注はCSVで基幹システムへ連携される
コードから仕様を起こす (模式図)



大企業・官公庁・自治体でのエンタープライズ対応
※1 2025年3月トラフィック分析ツール(Similarweb)による推定値に基づく自社調査。AI総合研究所の運営・分析実績に基づく継続的な改善・検証による知見蓄積。
レガシーコード変換で必ず起きること
変えたいのに、動かせない
UIも実行環境も古く、OSやOfficeが更新されるたびに止まらないかを気にする状態。作り直したいという話は出ているのに、着手できないまま何年も動き続けています。止まっている理由は、だいたい次の3つです。
何本あるか分からない
共有フォルダと個人端末に散らばったまま数えられていない
まず洗い出して、使われている本数を数える
作った人がもういない
退職・異動で引き継がれず、設計書も実物とずれている
コードから仕様を起こし直す
変わっていないと言い切れない
作り直した結果、以前と同じ数字が出る保証がない
旧新に同じ入力を流して突き合わせる
対象になるレガシー資産
ソースコードが残っていれば、言語は問わない
動いているコードを読み取れることが条件で、言語や年代は問いません。代表的なものを挙げると次のとおりです。どこに何本あるかを数えるところから始められます。
COBOL
- 読み取るもの
- ジョブの流れ・ファイル定義・分岐条件
- 典型的な移行先
- Java・C# などへの再実装
Access
- 読み取るもの
- テーブル定義・クエリ・フォーム・レポート
- 典型的な移行先
- 既存システムへの統合、クラウドDBへの集約
PL/SQL・ストアド
- 読み取るもの
- 手続きの呼び出し関係・更新対象テーブル
- 典型的な移行先
- アプリケーション層への切り出し
Notes / Domino
- 読み取るもの
- 文書構造・承認ルート・アクセス権
- 典型的な移行先
- 標準のワークフロー基盤へ集約
上記にない言語・基盤もご相談ください。進め方は資産の残り方と規模によって変わるため、まず代表的な1本をお預かりし、どこまで読み取れるかを確かめる形をとっています。
変換の進め方
数える、読み解く、決める、移す、突き合わせる
AI Transformation Hub と同じエンジンを、資産1本ずつのコード変換に向けたものです。工程を切り分け、1本ずつ最後まで終わらせてから次に進みます。
STEP 1 / INVENTORY
棚卸し
対象のフォルダとサーバを読み取り、資産の本数・更新日・最終利用日を一覧にします。
AIが実行
STEP 2 / SPEC
仕様の復元
コードから業務ルールと入出力を読み取り、設計書がない前提で仕様を起こします。
AIが実行
STEP 3 / DECIDE
扱いの決定
廃止・統合・標準機能へ寄せる・作り直す・当面維持に仕分け、対象そのものを減らします。
人が判断
STEP 4 / CONVERT
変換と実装
決めた移行先に合わせて、Coding Agent が隔離環境の中で実装します。
AIが実行
STEP 5 / PARITY
旧新の突合
同じ入力を旧と新に流し、出力を突き合わせます。差異が出たら原因を読んで直します。
AIが実行
STEP 6 / APPROVE
承認
差異の一覧・テスト結果・判断の根拠を人がレビューし、承認して初めて切り替えます。
人が判断
全部まとめて変換しない
何百本あっても、一括で流し込むことはしません。1本ずつ、旧と同じ動きになったことを確かめてから次に進みます。
- 資産1本 (1つのDB・1つの帳票) を単位に割る
- 1本ごとに 仕様復元 → 変換 → 突合 → 承認 まで完了させる
- 承認が済んだものから順に切り替える
- 途中で止めても、切り替え済みの資産はそのまま残る
扱いの決定と最終承認は人が行います。AIに承認まで任せる設計にはしていません。
SPEC - 仕様の復元
設計書がなくても、仕様は起こせる
動いているコードが、いま一番正確な仕様書です。そこから業務ルールと入出力を読み取り、人が読める形に起こします。変換しない資産でも、この工程だけで引き継ぎ資料になります。
読み取るもの
- テーブル定義とリレーション
- フォーム・レポートの入出力項目
- マクロ・プロシージャの分岐条件
- 他ファイル・他システムへの参照
- 実際に使われているクエリと、使われていない機能
起こされるもの
受注管理DB (例) から復元した業務ルール
数量が100を超える場合、単価を15%割り引く
frmOrder / cmdRegister_Click()
得意先区分Aは10%割引。数量条件と重なる場合は数量条件が優先される
frmOrder / cmdRegister_Click()
締日は毎月20日。20日が休日の場合は前営業日に繰り上げる
mdlCalc / GetClosingDate()
確定した受注は日次でCSVに書き出し、基幹へ連携される
mdlExport / ExportDaily()
復元した仕様は、必ず業務担当者に確認していただいたうえで確定します。AIが読み取った内容をそのまま正しいものとして扱うことはしません。
PARITY - 旧新の突合
動きが変わっていないことを、証拠で示す
作り直しで一番怖いのは、以前と違う数字が出ることです。同じ入力を旧と新の両方に流し、出力を1件ずつ突き合わせます。差異は隠さず一覧にして、意図した差異か不具合かを人が判定します。
通常受注 (数量50)
一致旧システム
¥125,000
新システム
¥125,000
数量割引 (数量120)
一致旧システム
¥255,000
新システム
¥255,000
区分A + 数量120
差異あり旧システム
¥255,000
新システム
¥229,500
数量割引と区分割引が二重に適用されている。旧の挙動に合わせて修正。
締日が休日 (2月23日)
一致旧システム
2月22日
新システム
2月22日
| 入力ケース | 旧システム | 新システム | 判定 |
|---|---|---|---|
| 通常受注 (数量50) | ¥125,000 | ¥125,000 | 一致 |
| 数量割引 (数量120) | ¥255,000 | ¥255,000 | 一致 |
| 区分A + 数量120 | ¥255,000 | ¥229,500 | 差異あり 数量割引と区分割引が二重に適用されている。旧の挙動に合わせて修正。 |
| 締日が休日 (2月23日) | 2月22日 | 2月22日 | 一致 |
突合結果 (模式図)
残るもの
- 突合に使った入力データと件数
- 一致・差異の内訳
- 差異ごとの原因と対応
- 変更したファイルと差分
- 承認者と承認日時
旧システムを止める前に、この突合結果を見て切り替えを判断できます。
AI Transformation Hub との関係
システムを刷新するのか、コードを変換するのか
現行解析・計画・実装・テスト・証跡という流れは共通です。基幹システムそのものを刷新するのか、個別のコード資産を1本ずつ移すのかで入口を分けています。
レガシーコード変換
資産1本ずつ、コードを移す
COBOL・VB6/VBA・Access など、引き継がれていないコードを数えて・読み解いて・移します。移行先の基盤はお客様の標準に合わせます。
このページ
始め方
まず1本、預けてみるところから
はじめから全資産を対象にはしません。1本で仕様の復元まで通してみて、出てきたものを見てから範囲を決めます。
範囲を決めて棚卸し
対象のフォルダを絞り、何本あるかを数えます。
1本で仕様を復元
代表的な1本を選び、どこまで読み取れるかを確認します。
変換と突合
移行先を決めて実装し、旧新の出力を突き合わせます。
本数を広げる
同じ流れを、承認済みのものから順に積み上げます。
資産の種類と本数によって進め方も期間も変わります。現状を伺ったうえでご提案します。
FAQs
よくある質問
レガシーコード変換に関する よくある質問とその回答
レガシーコードの変換は、まずは無料相談から。
