QRコードでシステム間データ移行!
旧システムから新システムへ、読み取るだけで引っ越し完了

ExcelでQRコードを作成し、QRリーダーやバーコードリーダーで読み取って、Excel入力・Webシステム入力・業務システム入力を自動化したい場面を想定しています。APIやCSVインポートが使えず、VBA・マクロも禁止されている会社の移行作業では、QRリーダー入力が代替手段になる場合があります。

Enter / Tab の共通整理

QR入力では、読み取り先によって最初に試す制御を分けます。Num Enter は Excel の CHAR 関数では生成できないため、必要な場合はQRリーダー側のキー変換で確認します。

用途まず試すもの備考
Excelで次行へ移動CHAR(10)ExcelのEnter移動設定やリーダーのサフィックスに依存します。
Webフォームの確定・検索CHAR(13)画面ごとに差があるため、検証画面で確認します。
基幹系の確定Num EnterCHAR関数では生成できません。QRリーダー側のキー変換が必要です。
Tab移動CHAR(9)多くのExcel/Webフォームで安定しやすい制御です。
🔥 機種限定の解説です
本記事で示す具体的な設定バーコードと検証結果は、オプトエレクトロニクス社の OPI-3601、ALX-3601(互換品)、L-46X を中心にしています。ただし、サフィックス変更、ディレイ調整、NumEnterやPauseなどのキー送信は、ZebraやHoneywellなど主要メーカーでも対応できる場合があります。設定名・設定ツール・復元方法はメーカーごとに異なるため、他メーカーでは本記事のバーコードをそのまま使わず、各メーカーのマニュアルや設定ツールで同等設定を作ってください。

🔑 最初に ― 本記事を読む前に知っておいてほしいこと

⚠️ 実務でのシステム移行は、ほとんどの場合「全角文字」を含みます
顧客名、商品名、住所、備考欄――業務システムのデータには日本語(全角文字)がほぼ必ず含まれます。バーコードコントロール(ActiveX)は半角文字しか扱えないため、現実のシステム移行でそのまま使えるケースは限定的です。

本記事では、バーコードコントロール+キーボードエミュレーション方式での「半角データのシステム移行」を解説します。フィールドマッピング・キー操作設計・Sleepの配置・移行バッチの組み立てといった設計思想は、全角対応の場合でもそのまま活きる共通技術です。

しかし正直に言えば、本シリーズの本命は次の記事⑪です。

💡 記事⑪「VBA標準機能だけで全角QR生成」が本命です
記事⑪では、外部ライブラリなし・ネット接続なしで、VBAの標準機能だけで漢字・ひらがなを含むQRコードを生成する方法を解説しています。閉域環境ではライブラリの追加インストールが困難なため、ADODB.Stream+リード・ソロモン符号によるVBA自力生成が最も現実的な選択肢になります。

本記事で学ぶ「操作を分解してQRプログラムに変換する設計技法」は、記事⑪のVBA生成方式でもそのまま使います。つまり本記事は、記事⑪を最大限に活用するための設計編という位置づけです。ぜひ最後まで読んで、記事⑪へ進んでください。

本記事と記事⑪の関係

項目本記事(⑩)記事⑪(本命)
QR生成方式バーコードコントロール(Access由来のActiveX)VBA標準機能のみで自力生成
全角文字✕ 使えない○ 使える
外部ライブラリ不要。ただしAccess由来のMicrosoft Barcode Controlが使えるOffice構成と、ActiveX利用が許可された設定が前提不要
閉域環境○ 最適
学べること設計技法:画面分析・マッピング・キー操作設計・Sleep配置実装技法:UTF-8変換・RS符号・セル描画・全角QR生成
実務での出番半角のみのコード・数値データの移行日本語を含む実データの移行(=ほとんどの現場)
📝 読み方のおすすめ
本記事で移行の設計手法(画面分析→マッピング→数式設計→テスト)を理解してから、記事⑪で全角QR生成の実装に進むと、両方の技術がスムーズに繋がります。設計なしにいきなりVBAコードだけ書いても、実務の移行プロジェクトはうまくいきません。

💡 この記事の目的

記事⑨では「Excel → Excel」のデータ転送を扱いました。本記事ではさらに踏み込み、異なるシステム間でのデータ移行にQRコードを活用する方法を解説します。

旧システムのリプレース、部門間のシステム統合、クラウド移行――こうした場面で「旧システムの数千件のデータを新システムに手入力する」という作業が発生しがちです。QRコードなら、新システムの画面にキーボード入力として直接データを流し込めるため、インポート機能がなくても移行が可能です。

  • QR移行の位置づけ:API・CSV・RPA等との比較で「いつQRが有効か」を判断する
  • 画面操作の分析手法:新システムの入力画面を1キーずつ分解する
  • フィールドマッピング:旧データ項目と新画面フィールドの対応付け
  • QRプログラム数式の設計:データ+Tab+Enter+Sleep+特殊キーを1つの数式にまとめる
  • テスト→本番移行の進め方:段階的テストと所要時間の見積もり

なぜQRコードでシステム移行なのか

移行手段前提条件メリットデメリット
API連携両システムにAPIがある高速・自動化可能開発コスト大・技術者必要
CSVインポート新システムにインポート機能大量データに対応機能がないシステムでは不可
DB直接移行DBアクセス権限・スキーマ知識最速・大量データリスク大・専門知識必須
RPARPAツール導入済み画面操作を自動化ライセンス費用・設定工数
手入力なし確実膨大な時間・ミス多発
QRコード移行Excel + QRリーダー導入ゼロ・画面操作を自動化・閉域OK半角制限(記事⑪で解消)・255文字/QR

QRコード移行の最大の利点は、新システム側に特別な機能や権限が一切不要なことです。キーボードで入力できる画面さえあれば、QRリーダーがキーボードの代わりにデータを打ち込みます。RPAと同じ発想ですが、ソフトウェアのインストールが不要なため、IT部門の許可なしで即日導入できる場合が多いです。

記事⑨との違い ― Excel→Excel と システム→システム

要素記事⑨(Excel→Excel)本記事(システム→システム)
受信側の入力先Excelのセル(Tab/Enterで移動)業務システムの入力画面(Tab/Enter+特殊キー操作)
画面遷移なしメニュー選択→画面遷移→登録→次画面
待ち時間不要画面遷移のSleep(記事⑥)が必要
特殊キー操作Tab・EnterのみF2・Esc・矢印キー・Delete等(記事④⑤)
フィールド順序Excel列順=データ順画面のTab順序と旧データの列順が異なる場合あり
繰り返しQRを順番に読むだけ1件ごとに「新規登録→入力→保存」のサイクル

つまり本記事は、記事⑦(全体システム設計)の技法を「移行」という文脈で再構成したものです。記事①〜⑦の全技術を総動員します。

移行プロジェクトの全体フロー

① データ抽出 ② 画面分析 ③ マッピング ④ 数式設計 ⑤ テスト&本番
フェーズ作業内容成果物所要時間(目安)
① データ抽出旧システムからデータをExcelに取り込む移行元データシート1〜2時間
② 画面分析新システムの入力画面のキー操作を洗い出す操作フロー表1〜2時間
③ マッピング旧データ項目と新画面フィールドを対応付けるフィールドマッピング表30分〜1時間
④ 数式設計QRプログラム数式を組み立てるQR生成シート1〜2時間
⑤ テスト&本番テスト環境で数件検証 → 全件移行移行完了件数による

全体で1〜2日あれば、数百件規模の移行が完了します。手入力なら数週間かかるような作業が、設計1日+実行数時間で終わる計算です。

フェーズ①:旧システムからデータを抽出する

1 旧データをExcelに取り込む 所要 1〜2時間 送信側
抽出方法対象システム注意点
CSV/TSVエクスポート多くの業務システム文字コードに注意(UTF-8推奨)
帳票→PDF→コピー帳票印刷のみ可能なシステム列がずれやすい、目視確認必須
画面コピー出力機能がないシステム1画面分ずつしか取れない
QRコード逆転送(記事⑨)閉域環境の旧システム旧側にもExcel+QR環境が必要
📝 データ抽出の原則
どんな方法でも、最終的にExcelの1シートに「1行=1レコード、1列=1フィールド」の形で整理します。この表が移行の起点になります。

フェーズ②:新システムの入力画面を操作分析する

QR移行の成否は、新システムの画面操作をどれだけ正確に分析できるかにかかっています。記事⑦で学んだ「操作を1キーずつ分解する」手法を使います。

2 画面操作を1キーずつ書き出す 記事⑦ 所要 1〜2時間 設計

新システムの「新規登録」画面を開き、1件のデータを手で入力しながら、押したキーをすべて書き出します。

操作順画面の状態押すキーQRシンボル備考
1メニュー画面「2」(新規登録)2メニュー番号で選択
2画面遷移中(3秒待機)!Sleep(記事⑥)
3顧客コード欄にカーソルコード入力(データ)半角英数
4顧客コード欄TabCHAR(9)次フィールドへ
5顧客名欄(自動表示)TabCHAR(9)スキップ(自動入力欄)
6電話番号欄電話番号入力(データ)半角数字・ハイフン
7電話番号欄TabCHAR(9)
8区分ドロップダウン↓キー×n回^(n回)記事④の文字→キー変換
9区分確定TabCHAR(9)
10備考欄(空でスキップ)CHAR(9)Tab で通過
11登録ボタンにフォーカスEnterCHAR(13)登録実行
12確認ダイアログEnterCHAR(13)「はい」を確定
13登録完了→メニューに戻る(3秒待機)!画面遷移待ち

分析で見落としやすいポイント

見落としがちな要素具体例対処法
自動入力フィールドコード入力→名称自動表示Tab で通過(データは入れない)
確認ダイアログ「登録しますか? はい/いいえ」Enter or Tab+Enter を追加
ドロップダウン選択区分・カテゴリ等↓キー回数 or 頭文字入力(記事④⑤)
日付欄の書式変換自動で「/」が入る欄「20260417」のように数字だけ入力
既存値のクリアデフォルト値が入っている欄Delete(`) で消してから入力
画面遷移の待ち時間差初回は遅いが2回目以降は速い最も遅いケースに合わせてSleep設定

フェーズ③:フィールドマッピング表を作成する

3 旧データ列と新画面フィールドの対応表を作る 所要 30分〜1時間 設計

マッピング表の例(顧客マスタ移行)

旧データ列旧項目名新システムフィールド操作順変換処理
A列顧客コード顧客コード欄3番目そのまま
顧客名欄(自動表示)5番目Tab で通過
B列電話番号電話番号欄6番目ハイフン除去
C列区分区分ドロップダウン8番目数値→↓キー回数に変換
D列備考備考欄10番目空ならスキップ

よくあるマッピングパターン

パターン旧データの状態新システムでの入力方法Excel数式での変換
そのまま転記半角テキストフィールドにそのまま入力A2
ハイフン除去"03-1234-5678""0312345678"=SUBSTITUTE(B2,"-","")
日付書式変換"2026/04/17""20260417"=TEXT(D2,"YYYYMMDD")
区分→選択回数区分"3"↓キー3回=REPT("^",C2)
フラグ→チェック"1"(有効)Spaceキー=IF(E2="1"," ","")
旧にない項目空でTab通過CHAR(9)
新にない項目存在する移行しない数式から除外

フェーズ④:QRプログラム数式を組み立てる

4 データ+キー操作を1つの数式にまとめる 記事⑦ 所要 1〜2時間 設計

記事⑦の「QRプログラム」の構造をそのまま適用します。1レコード(1件の移行データ)に対して、「メニュー操作→画面遷移待ち→データ入力→登録→画面遷移待ち」の全操作を1つの文字列にまとめます。

= "2" & CHAR(13) & "!" & A2 & CHAR(9) & CHAR(9) & SUBSTITUTE(B2,"-","") & CHAR(9) & REPT("^",C2) & CHAR(9) & IF(D2="","",D2) & CHAR(9) & CHAR(13) & CHAR(13) & "!"

数式の分解

部分数式動作参照
メニュー選択"2" & CHAR(13)「2」入力 → Enter で新規登録画面へ
画面遷移待ち"!"3秒Sleep
顧客コードA2 & CHAR(9)データ入力 → Tab
顧客名スキップCHAR(9)自動表示欄を Tab で通過
電話番号SUBSTITUTE(B2,"-","") & CHAR(9)ハイフン除去して入力 → Tab
区分選択REPT("^",C2) & CHAR(9)↓キーをC2回 → Tab④⑤
備考IF(D2="","",D2) & CHAR(9)備考があれば入力 → Tab
登録実行CHAR(13) & CHAR(13)Enter(登録)→ Enter(確認ダイアログ)
画面遷移待ち"!"3秒Sleep で メニューに戻る
📝 1QR=1レコードが原則
記事⑨では複数レコードを1QRにまとめましたが、システム移行では1件ごとに「登録→画面遷移→次の新規登録」というサイクルがあるため、1QR=1レコードが原則です。1件あたりの文字数を =LEN(E2) で確認してください。上記の例は約55文字なので255文字以内に余裕で収まります。
⚠️ 1レコードが255文字を超える場合
フィールド数が多い大規模システムでは1件が255文字を超えることがあります。その場合は「前半QR(途中のフィールドまで入力して止まる)」と「後半QR(続きから入力して登録まで)」に分割します。分割ポイントは必ずTab直後(フィールドの切れ目)に設定してください。

フェーズ⑤:テスト移行 → 本番移行

5 段階的にテストし、問題なければ全件実行する 所要 1時間〜 テスト
段階テスト内容確認ポイント失敗時の対処
Step 1メニュー→画面遷移のみSleepの長さが足りているか! を追加してSleep延長
Step 2最初の2〜3フィールドだけ入力Tab順序は正しいか、自動入力欄のスキップは正しいかTab/データの順序を修正
Step 3全フィールド入力+登録まで(1件)全フィールドに正しい値が入り、登録されたかマッピング or 変換式を修正
Step 4連続3件を実行2件目以降もサイクルが正しいか末尾のSleepを調整
Step 510件バッチ文字欠けなし、速度安定かディレイ調整(記事③)

Step 5まで問題なければ、新システムのバックアップを取得した上で、QR-001から順番に全件読み取りで本番移行を実行します。10件ごとに新システム側で件数を確認し、全件完了後にサンプル数件を目視照合すれば十分です。

所要時間の見積もり

1件あたりの実行時間内訳100件500件1,000件
約8秒(画面遷移なし)読取1s + 入力3s + 登録1s + 待機3s約13分約67分約2.2時間
約12秒(画面遷移1回)読取1s + 遷移3s + 入力3s + 登録1s + 遷移3s + 余裕1s約20分約100分約3.3時間
約18秒(画面遷移2回+重い処理)読取1s + 遷移3s + 入力4s + 確認2s + 登録1s + 処理4s + 遷移3s約30分約150分約5時間

1,000件でも半日あれば完了します。手入力なら1件3分 × 1,000件 = 50時間(6日以上)かかる作業です。

実践シナリオ:旧販売管理 → 新クラウドCRMへの顧客マスタ移行

シナリオ:オンプレミスの旧販売管理ソフト(CSV出力可能)から、クラウド型CRM(インポート機能なし、Web画面から手入力のみ)へ顧客マスタ350件を移行する。
項目内容
データ項目顧客コード(8) + 電話番号(11) + 担当者コード(4) + 区分(1桁→DD) + 登録日(8) = 計約32文字 + 操作約25文字 = 約57文字/件
1件あたり実行時間約12秒
全体所要時間350件 × 12秒 = 4,200秒 ≒ 約70分

QR数式

= "3" & CHAR(13) & "!"
  & A2 & CHAR(9)
  & CHAR(9)
  & SUBSTITUTE(B2,"-","") & CHAR(9)
  & C2 & CHAR(9)
  & REPT("^", D2) & CHAR(9)
  & TEXT(E2,"YYYYMMDD") & CHAR(9)
  & CHAR(13) & CHAR(13)
  & "!"

タイムライン(1件の流れ)

時間QR内の送信内容画面の動き
0.0s"3" → Enterメニューから「3:顧客登録」を選択
0.1–3.1s! (Sleep 3秒)顧客登録画面が開く
3.1s"CUS-0042" → Tab顧客コード入力 → 次フィールドへ
3.3sTab顧客名(自動表示)をスキップ
3.4s"0312345678" → Tab電話番号入力 → 次フィールドへ
3.6s"T012" → Tab担当者コード入力 → 次フィールドへ
3.8s"^^" → Tab↓キー2回(区分2を選択)→ 次フィールドへ
4.0s"20260417" → Tab登録日入力 → 登録ボタンへ
4.2sEnter登録ボタン押下
4.3sEnter確認ダイアログ「はい」
4.4–7.4s! (Sleep 3秒)登録処理 → メニュー画面に戻る

1件約7.4秒。350件で約43分。途中確認の時間を入れても70分以内で完了します。

移行パターン別の設計ガイド

移行パターン特徴設計のポイント使う技術
デスクトップ → デスクトップTab順序が安定、動作が速いSleep短め(1〜2秒)、ディレイ低めでOK②④⑥
デスクトップ → Webシステム画面読み込みに時間がかかるSleep長め(3〜5秒)、Tab順序が変わることがある②④⑤⑥
Excel → 業務システムデータ加工が容易SUBSTITUTE・TEXT等で書式変換してからQR化②③⑥⑦
閉域旧システム → 閉域新システム紙経由の二段階移行旧→Excel(記事⑨)→QR化→新システム(本記事)⑨+本記事
複数旧システム → 1つの新システムデータ形式がバラバラ旧システムごとに別のマッピング表・数式を作成全技術

トラブルシューティング(移行特有の問題)

症状原因対処法
2件目以降でフィールドがずれる1件目の登録後、メニューに戻りきる前に2件目が始まる末尾のSleepを長くする(! を追加)
ドロップダウンの選択がずれる↓キー回数の計算ミス、または初期値が「1番目」初期状態を確認し、REPT回数を±1調整
日付欄に正しく入力されない新システムが「/」を自動挿入するTEXT関数の書式を新システムに合わせる
確認ダイアログが出ない件があるデータ内容により確認の有無が変わるIF関数で条件分岐(Enter追加/省略)
途中で新システムがタイムアウト移行に時間がかかりセッション切れ50〜100件ごとに再ログインする運用に変更
旧データに不正値がありエラーで止まる旧システムの入力規則が甘かった事前にExcelでバリデーション(IF・ISERROR等)
全角文字が文字化けするバーコードコントロールの半角制限記事⑪のVBA標準機能のみ方式で全角QRを生成する

この記事で学んだこと ― まとめ

項目内容
QR移行の利点新システム側にAPI・インポート機能不要。キーボード入力できる画面があれば移行可能
全体フローデータ抽出 → 画面分析 → マッピング → 数式設計 → テスト&本番(5フェーズ)
画面分析の重要性新システムの操作を1キーずつ分解し、QRプログラムに変換する
フィールドマッピング旧データ列と新画面フィールドを対応付け、変換処理を定義する
1QR=1レコードが原則登録→画面遷移のサイクルがあるため、レコード途中での分割は避ける
所要時間目安1件8〜18秒 → 1,000件でも半日以内
全角文字の制約バーコードコントロールは半角のみ → 記事⑪のVBA自力生成で全角対応
使う全技術記事①〜⑦の全技術と⑨の閉域転送手法を総動員
① QR生成 ② Tab/Enter ③ ディレイ ④ キー変換 ⑤ 実践パターン ⑥ Sleep ⑦ 全体像 ⑧ リーダー選定 ⑨ 閉域転送 ⑩ システム移行(今ここ)
💡 次はいよいよシリーズの本命です
本記事で学んだ画面分析・マッピング・数式設計の技法は、次の記事⑪でもそのまま活きます。記事⑪では、バーコードコントロールの「半角しか使えない」という壁を、VBA標準機能だけで突破します。外部ライブラリなし・ネット接続なしで、漢字・ひらがなを含むQRコードを生成する方法を解説します。

閉域環境ではライブラリの追加インストールが困難です。そのため、ADODB.Stream(UTF-8変換)+ リード・ソロモン符号(誤り訂正)+ セル描画というVBA自力実装が、最も現実的な全角対応手段になります。

記事⑪「VBA標準機能だけで全角QR生成」へ進む

QRリーダー連携の運用注意

QRリーダーは多くの場合、PCにはキーボード入力として認識されます。Tab、Enter、ファンクションキー、待機時間を組み合わせると登録・更新・削除などの操作まで進められるため、実務投入前の検証手順を必ず固定してください。

  • 本番データではなく、架空データと検証用画面で読み取り順、セル移動、登録操作を確認する。
  • 個人情報、認証情報、機密コードをQRにそのまま埋め込まない。必要な場合は最小限のIDに置き換える。
  • 設定バーコード、初期化手順、復旧手順を保存し、誰が変更したかを記録する。
  • キー変換や待機時間を変更した後は、Excel以外の画面がアクティブな状態で誤送信されないか確認する。