QRコードで閉域環境のデータ転送!
ネットワーク不要・紙だけでExcelデータを別PCに移す

ExcelでQRコードを作成し、QRリーダーやバーコードリーダーで読み取って、Excel入力・Webシステム入力・業務システム入力を自動化したい場面を想定しています。

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 の3機種を中心にしています。サフィックスOFF、キャラクタ間ディレイ、制御文字のキー変換は Zebra や Honeywell など主要メーカーでも対応できる場合がありますが、設定名・設定ツール・紙バーコードで復元できる範囲はメーカーごとに異なります。他メーカーで実施する場合は、本記事のバーコードをそのまま使わず、各メーカーのマニュアル、123Scan、EZConfig などで同等設定を作ってください。

🔑 最初に ―「全角文字が使えないなら意味がない」と思った方へ

閉域環境でのQR転送を検討するとき、多くの方がまず気になるのは「日本語(全角文字)は転送できるのか?」でしょう。結論から言います。

💡 全角文字を含むQRコードは作れます
QRコード自体は日本語(漢字・ひらがな・カタカナ)を格納できます。問題は「どうやってQRを生成するか」だけです。Excelのバーコードコントロール(ActiveX)では半角しか扱えませんが、VBAで自力生成する設計は可能です(完成コードは記事⑪で後日公開検討)。

閉域環境での現実的な選択肢

閉域環境ではインターネットに接続できないため、外部ライブラリ(Pythonのqrcodeモジュール等)を後からインストールすることが困難です。そのため、VBA標準機能だけでQRコードを自力生成する設計が候補になります。ただし実装難度は高く、記事⑪では現時点で設計メモとして整理しています。

QR生成方法全角外部ライブラリ閉域環境難易度解説
バーコードコントロール(ActiveX) 不要 ★☆☆ 本記事
VBA標準機能のみで自力生成
(ADODB.Stream+リード・ソロモン符号+セル描画)
不要 ○ 最適 ★★★ 記事⑪
設計メモ
VBA+外部DLL/ライブラリ 必要 △ 事前持込要 ★★☆ 記事⑪
設計メモ
Python(qrcode等) 必要 ✕ 導入困難 ★★☆ 記事⑪
設計メモ
📝 VBA標準機能のみで生成する設計とは
Windowsに最初から入っている ADODB.Stream でUTF-8変換し、VBAでリード・ソロモン符号(誤り訂正)やQRマトリクスの構築を自力で計算し、Excelのセル塗りつぶしでQRコードを描画する考え方です。DLLもネット接続も不要で、閉域環境のPCにExcelさえあれば動かせる可能性があります。ただし実装は高難度です(ガロア体の多項式演算、ジグザグのデータ埋め込み、マスクパターン最適化など)。記事⑪では設計メモとして整理しています。

ただし、全角QRの「読み取り」にも制約があります。一般的なQRリーダーのキーボードエミュレーション(USB HID)モードでは全角文字を正しくExcelに入力できない機種が多く存在します(※OPI-3601等の一部機種は「漢字直接出力」に対応していますが、標準設定では文字化けするリーダーが多数派です)。全角データの受信にはUSB COMモード(シリアル通信)+受信側VBAが必要で、送信側・受信側ともにVBAが動く環境であることが前提になります。

本記事の位置づけ

以上を踏まえ、本記事ではバーコードコントロール(半角のみ)+ キーボードエミュレーション方式での閉域転送手順を解説します。ただしバーコードコントロールはExcel単体の標準機能ではなく、主にAccessに同梱されるActiveXコントロールです。送信側PCにAccess、または同コントロールを含むOffice構成が入っていない場合、Excelの一覧に表示されません。加えて2026年現在、Microsoft 365 / Office 2024では初期設定でActiveXが表示・作成できないことがありますが、トラストセンター設定で許可すると表示できる場合もあります。職場PCでは管理者ポリシーでブロックされることもあるため、まず設定と一覧を確認してください。

全角文字を含むデータを転送したい場合は、先に記事⑪「全角QR生成の設計メモ」をお読みください。

自分のデータはどちらに該当する?

データの例文字種本記事記事⑪
PRD-001, 50, A-12, 2026-04-17半角のみ
SN-20250401-0023, 12.45, OK半角のみ
192.168.1.100, ERR-0042半角のみ
山田太郎, 品質管理課, 東京都…全角あり
ステンレスボルト M8, 納品時要連絡全角あり
⚠️ 現実的なアドバイス
日本の業務データの多くは全角文字を含みます。半角のみで完結するデータ(コード・数値・日付だけの管理台帳等)であれば本記事の方法がシンプルで最適ですが、そうでなければ記事⑪の設計メモを確認してください。半角列のみQRで転送し、全角列は受信側でVLOOKUP等のマスタ参照で補完するという折衷案も有効です。

💡 この記事の目的

記事①〜⑦では1台のPC上でQRリーダーを使い、業務入力を自動化しました。しかし現場には「ネットワークに繋がっていないPC同士でデータを受け渡したい」という要望が数多くあります。

セキュリティポリシーでUSBメモリ禁止、インターネット接続なし、メール不可――そんな閉域環境でも、QRコードを紙に印刷して物理的に持ち運べばデータ転送が可能です。本記事では半角文字のみで構成されるデータを対象に、バーコードコントロールを使った全手順を解説します。

  • 閉域環境でのQR転送の仕組み:なぜ紙+QRコードで転送できるのか
  • 送信側の数式設計:Tab/Enter埋め込み → TEXTJOIN連結 → MID分割
  • QR生成・印刷レイアウト:通し番号・ヘッダー情報・推奨サイズを含む印刷設計
  • 受信側のリーダー読み取り:OPI-3601・ALX-3601・L-46Xでの読み取り手順と設定
  • セキュリティ考慮:紙=物理的なデータ持ち出しであることの運用ルール

転送の全体像 ― 送信 → 紙 → 受信の3フェーズ

送信側PC
Excel → QR文字列 → QR生成 → 印刷
→ 紙を運搬 →
A4用紙
QR-001〜QR-021(通し番号付き)
→ リーダーで読取 →
受信側PC
QRリーダー → Excelに自動入力
フェーズ場所やること使うもの
① 送信 送信側PC ExcelデータをQR文字列に変換し、バーコードコントロールでQRコードを生成・印刷する Excel+Access由来のバーコードコントロール+プリンター
② 運搬 物理移動 印刷した紙を受信側PCのある場所へ持っていく A4用紙(QR印刷済み)
③ 受信 受信側PC QRリーダーで紙を順番に読み取り、Excelに自動入力する Excel + QRリーダー(OPI-3601 / ALX-3601 / L-46X)
📝 「紙がネットワークの代わり」という発想
1枚のQRコードに収まるデータ量はバーコードコントロール使用時で半角255文字。複数QRに分割すれば数百〜数千件のデータも転送できます。ネットワーク接続やUSBメモリは不要ですが、送信側PCで Microsoft Barcode Control が表示され、ActiveXの利用が許可されていることが前提です。

閉域環境とは? ― なぜQR転送が必要になるのか

制約具体例従来の対処法問題点
ネットワーク不可工場制御系PC、機密端末手入力・紙の転記ミス多発・時間がかかる
USBメモリ禁止金融機関、官公庁承認申請 → 一時許可数日〜数週間待ち
メール/クラウド不可医療機関、防衛関連CD-R焼き・FAX手間・画質劣化
専用ソフト導入不可資産管理でインストール制限IT部門に依頼導入まで数ヶ月

QRコード転送はこれらすべての制約をクリアします。必要なのは送信側のExcel+Access由来のバーコードコントロールプリンター受信側のExcelQRリーダーです。Excelだけしか入っていない送信側PCではバーコードコントロールが表示されない場合があります。Microsoft 365 / Office 2024環境では、ActiveX設定を確認し、必要に応じて許可できるか確認してください。

前提条件の確認

前提内容参照記事
QR生成方法バーコードコントロール(ActiveX)でQRコードを生成できること
Tab/Enter埋め込みCHAR(9)でTab、CHAR(13)でEnterを埋め込む数式を理解していること
サフィックス設定リーダーのサフィックスをNone(なし)に設定済み
キャラクタ間ディレイ5〜20ms に設定済み(大量文字の文字抜け防止)
半角文字制限バーコードコントロールは半角文字のみQRに変換可能(全角は記事⑪で設計方針を確認)⑧⑪
⚠️ 全角文字を含むデータは本記事の方法では転送できません
バーコードコントロール(ActiveX)は半角英数字・半角記号(ASCII範囲)のみ正しくQRに変換できます。全角を含むデータを転送したい場合は、記事⑪の設計メモを確認してください。完全版コードは後日公開検討のため、実運用では十分な検証が必要です。

受信側リーダーの推奨設定(OPI-3601 / ALX-3601 / L-46X)

設定項目推奨値メニューバーコード理由
サフィックスなし(None)SET → RY → ENDQR内のCHAR(13)で改行するため、リーダー側のEnter付加は不要
キャラクタ間ディレイ5〜10msSET → LB → END255文字の高速送信で文字抜け防止。閉域転送はデータ量が多いので軽めが望ましい
キーボード言語日本語(PM)SET → PM → END記号の文字化け防止
読み取りモードマニュアルトリガ(通常デフォルト)1枚ずつ確認しながら読み取るため
📝 ディレイの調整ポイント
通常の業務入力(記事③)ではディレイ20msを推奨していますが、閉域転送ではQR1枚あたり最大255文字を一括送信するため、ディレイが大きいと1枚の読み取りに 255 × 20ms = 約5秒 かかります。受信側PCのスペックに余裕があれば5msに下げると 255 × 5ms = 約1.3秒 で高速転送できます。文字抜けが発生する場合のみ値を上げてください。

送信側:ExcelデータをQR文字列に変換する

1 データ構造を確認する 所要 2分 送信側

転送したいデータの構造を確認します。以下は在庫データの例です。

A列:商品コードB列:数量C列:棚番号D列:日付
2PRD-00150A-122026-04-17
3PRD-002120B-032026-04-17
4PRD-00330C-072026-04-17
  • 転送データが半角文字のみであることを確認(全角がある場合は記事⑪へ)
  • 列数と列の順番を確認(受信側と同じ構造にする)
  • 1レコードあたりの文字数を概算(上記例は約35文字/件)
📝 半角チェック数式
データに全角文字が混入していないか一括チェックできます。
=IF(SUMPRODUCT((LEN(A2:D151)*2-LENB(A2:D151)))<>0,"⚠ 全角あり→記事⑪","✓ 半角のみ→本記事でOK")
2 1レコード=1文字列の数式を作成する(E列) 記事② 所要 3分 送信側

各レコードをTab区切り+Enter末尾の文字列に変換します。

=A2 & CHAR(9) & B2 & CHAR(9) & C2 & CHAR(9) & D2 & CHAR(13)

E2セルには PRD-001[TAB]50[TAB]A-12[TAB]2026-04-17[ENTER] が格納されます。

  • E2に数式を入力し、E列の最終行までコピー
  • =LEN(E2) で1レコードの文字数を確認
3 全レコードを1つの文字列に連結する(F1) 所要 2分 送信側
=TEXTJOIN("", TRUE, E2:E151)
⚠️ Excel 2016の場合: TEXTJOIN が使えない環境があります。候補に出ない場合は、E列を & で連結する、または件数を小分けにして & CHAR(9) & を使う方式に切り替えてください。

150レコード × 35文字 = 約5,250文字の長い文字列がF1に格納されます。

  • F1にTEXTJOIN数式を入力
  • =LEN(F1) で全体の文字数を確認
4 MID関数で255文字ずつ分割する(G列) 所要 5分 送信側
=IF((ROW()-1)*255+1 > LEN($F$1), "", MID($F$1, (ROW()-1)*255+1, 255))

G1セルに入力し、下方向に十分な行数コピーします。必要QR枚数は次の数式で算出できます。

=ROUNDUP(LEN(F1)/255, 0)

5,250文字なら 21枚(A4用紙3枚程度)です。

  • G1に数式を入力し、30行程度にコピー
  • 空白行が出た時点で分割完了(それ以降のQRは不要)
  • 各G列セルの文字数が255以下であることを確認
⚠️ レコード途中での切断について
MID関数で機械的に255文字で切ると、1レコードの途中で分割される場合があります。受信側ではQRを通し番号順に連続読み取りするため、途中で切れても前のQRの続きとして自動連結され、結果として正しく入力されます。ただし実運用では必ずテスト読み取りで確認してください。
5 通し番号を付与する(H列) 所要 1分 送信側
=IF(G1="", "", "QR-" & TEXT(ROW(), "000"))
  • H列に通し番号を生成
  • 通し番号は読み取り順序管理に必須
🔥 通し番号なしでは運用できません
QRを読み取る順序を間違えるとデータの並びが崩壊します。各QRの横に大きく番号を印刷してください。

QRコードの生成と印刷レイアウト

記事①で設定したバーコードコントロール(Style = 11: QR Code)のLinkedCellをG1, G2, G3… と切り替えてQRコードを生成します。

項目推奨値理由
QRサイズ3cm × 3cm 以上OPI-3601/ALX-3601の読み取り距離で確実に読める最低サイズ
1ページあたりQR数6〜8枚(A4縦)余白・通し番号ラベルのスペース確保
通し番号QR-001, QR-002, …読み取り順序の管理に必須
ヘッダー情報転送日・総件数・ページ番号・送信者名受信側での照合・証跡として
印刷品質600dpi以上QRの細かいモジュール(ドット)を正確に再現するため
用紙普通紙(白)光沢紙は反射で読み取りにくい場合がある
💡 L-46X使用時の追加メリット
L-46Xは最大100fpsの高速撮像と30万画素CMOSセンサを搭載しているため、QRサイズが2cm×2cm程度の小さいコードでも安定して読み取れます。A4用紙1枚に10〜12枚のQRを配置できるため、印刷枚数を削減できます。

受信側:QRリーダーで読み取り → Excelに自動入力

① Excelを開き A1を選択 ② QR-001を読み取り ③ 自動入力を確認 ④ QR-002… 繰り返し ⑤ 最終QRまで完了

QR-001から番号順にリーダーで読み取っていくだけです。1枚読み取るごとにExcelのカーソルはデータ末尾に自動移動します。次のQRを読み取ると、そこから続きが入力されます。

読み取りにかかる時間の目安

条件OPI-3601 / ALX-3601
(ディレイ10ms)
L-46X
(ディレイ5ms)
QR1枚(255文字)の転送時間255 × 10ms ≒ 約2.6秒255 × 5ms ≒ 約1.3秒
読み取り動作(トリガ〜デコード)約0.5秒約0.3秒
QR1枚の合計時間約3秒約1.6秒
21枚(150件・35文字/件)の合計約63秒(約1分)約34秒
100枚(500件・50文字/件)の合計約5分約2.7分
💡 連続読み取りのコツ
前のQRの転送が完了する前に次のQRを読み取ると、データが混在する恐れがあります。リーダーの「読み取り成功ブザー」が鳴ってから次のQRに移る習慣をつけてください。L-46Xではバイブレーション機能(振動)も確認に使えます。ハンズフリースタンド(STD-46)を使えば紙をかざすだけで読み取れ、大量QRの際に手の疲労を軽減できます。

転送可能なデータ量の目安

1レコード
文字数
1QRあたり
レコード数
100件に
必要なQR
500件に
必要なQR
500件 所要時間
(ディレイ10ms)
500件 所要時間
(ディレイ5ms)
20文字12件9枚42枚約2分約1分
35文字7件15枚72枚約3.5分約2分
50文字5件20枚100枚約5分約2.7分
80文字3件34枚167枚約8.5分約4.5分
120文字2件50枚250枚約12.5分約6.7分
255文字1件100枚500枚約25分約13分
⚠️ 現実的な上限の目安
QR枚数が100枚を超える場合は、紙の管理・読み取り順序の管理・やり直しリスクが急激に増加します。100枚以上になる場合は、データを優先度でフィルタして転送量を減らす、複数日に分けて転送する、セキュリティ部門にUSBメモリの一時許可を申請するなどの代替策も検討してください。

実践シナリオ:工場の検査データ150件を転送する

シナリオ:製造工場の検査室PC(閉域ネットワーク)から、事務所PC(社内LAN)へ検査データ150件を転送する。USBメモリは持ち出し禁止。データは半角のみ(製品ID・検査値・合否・日付)。
項目内容
データ構造製品ID(8文字)+ 検査値1(5文字)+ 検査値2(5文字)+ 合否(2文字)+ 日付(10文字)= 約30文字 + Tab×4 + Enter×1 = 約35文字/件
全データ文字数35 × 150 = 5,250文字
必要QR枚数5,250 ÷ 255 = 21枚(A4用紙3枚)
受信側リーダーALX-3601(ディレイ10ms)
所要時間21枚 × 約3秒 ≒ 約63秒(約1分)

数式まとめ

' E列:1レコード文字列
=A2 & CHAR(9) & B2 & CHAR(9) & C2 & CHAR(9) & D2 & CHAR(9) & E2 & CHAR(13)

' F1:全連結
=TEXTJOIN("", TRUE, E2:E151)

' G列:255文字ずつ分割
=IF((ROW()-1)*255+1 > LEN($F$1), "", MID($F$1, (ROW()-1)*255+1, 255))

' H列:通し番号
=IF(G1="", "", "QR-" & TEXT(ROW(), "000"))

' 全角チェック(半角のみならOK)
=IF(SUMPRODUCT((LEN(A2:D151)*2-LENB(A2:D151)))<>0,"⚠ 全角あり→記事⑪","✓ OK")

' 検証用
件数:     =COUNTA(A2:A151)              → 150
QR枚数:   =ROUNDUP(LEN(F1)/255, 0)     → 21
⚠️ TEXTJOINが使えない場合: Excel 2016では使えない環境があります。使えない場合は、レコード数を分割しながら && CHAR(9) & で連結してください。
📝 もしこのシナリオのデータに「製品名(日本語)」列があったら?
例えば「ステンレスボルトM8」のような全角文字を含む列があった場合、選択肢は2つです。
全角列を除外し、半角データ(コード・数値・日付)のみをQR転送。全角データは受信側でVLOOKUP等のマスタ参照で補完する。
記事⑪の設計メモを参考に、VBA標準機能のみで全角対応QRを生成する方針を検討する。完全版コードは後日公開検討のため、実装時はUSB COMモード+受信側VBAまで含めて検証が必要です。

トラブルシューティング

症状原因対処法参照
文字が欠ける・抜けるキャラクタ間ディレイ不足ディレイを10ms → 20msに上げる
列がずれるTab(CHAR(9))の数が合っていない送信側E列の数式を確認
余計な改行が入るリーダーのサフィックスがONSET → RY(サフィックスなし)→ END
QRが生成されないLinkedCellの文字数が255超=LEN()で確認し分割を見直す
全角文字が文字化けバーコードコントロールの半角制限全角列を除外するか記事⑪の設計メモを確認する
読み取り順序を間違えた通し番号を確認しなかった受信側データをクリアしQR-001から再読み取り
件数が少ないQRの読み漏れCOUNTAで確認し、不足分のQRを特定して再読み取り
件数が多い同じQRを重複読み取り重複行を削除。通し番号で正しい範囲だけ残す
記号が化けるキーボード言語がUSのままSET → PM(日本語キーボード)→ END
リーダーが反応しないUSB未認識 or スリープ状態USB抜き差し。トリガキーを押して復帰を確認

セキュリティ上の考慮事項

QRコードの紙は「物理的なデータ持ち出し」です。組織によってはUSBメモリと同等の管理が求められます。

懸念事項リスク対策
QR印刷物の持ち出し管理紛失・盗難で情報漏洩通し番号で枚数管理。使用後はシュレッダー処理。「受領印+返却確認」の運用ルール
転送内容の機密性スマホ等で読めば中身がわかる機密データは管理者立ち会いで転送。QR印刷物の取り扱い区分を設定
改ざん防止印刷後に差し替え・追加の可能性チェックサム照合で検知。厳格な場合はQR枚数とチェックサムを別紙に記録し封印
承認フロー無断持ち出し「何を・いつ・誰が・どこへ」転送したか記録。上長承認を事前に取得
受信側での保存復元データが管理外に流出受信側PCでのファイル保存先・アクセス権を事前に決定
🔥 必ず情報セキュリティ担当者に事前確認を
QR転送は「ソフトのインストール不要」「ネットワーク不要」という技術的な手軽さがありますが、セキュリティポリシー上の手軽さとは別問題です。USBメモリ禁止の組織では、紙によるデータ持ち出しにも同等の承認が必要な場合があります。必ず情報セキュリティ担当者に確認し、承認を得た上で運用を開始してください。

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

項目内容
全角文字の対応バーコードコントロールは半角のみ。全角にはVBA標準機能のみでの自力生成+USB COM受信が必要になるため、記事⑪で設計方針を確認する。完全版コードは後日公開検討
閉域環境とはネットワーク・USB等が使えない隔離されたIT環境
QR転送の原理Excel → QR文字列 → 紙に印刷 → 物理運搬 → 別PCでリーダー読取 → Excelに自動入力
1QRの上限半角255文字(バーコードコントロールの制限)
送信側の数式CHAR(9)でTab、CHAR(13)でEnter → TEXTJOIN連結(Excel 2016で使えない場合は & 連結)→ MID 255文字分割
必要QR枚数=ROUNDUP(LEN(全連結セル)/255, 0)
受信側リーダー設定サフィックスOFF、ディレイ5〜10ms前後、日本語キーボード。OPI系では RY / LB / PM を使用
本記事の実機検証OPI-3601、ALX-3601、L-46X(オプトエレクトロニクス社)。Zebra / Honeywell は本記事のバーコードを流用せず、各ツールで同等設定を作成して確認する
読み取り速度1枚 約1.6〜3秒 → 21枚(150件)で約1分
制約半角文字のみ(全角は記事⑪参照)。QR 100枚超は紙管理が煩雑
セキュリティ紙=物理的データ持ち出し。情報セキュリティ担当者に事前確認必須
① QR生成 ② Tab/Enter ③ ディレイ ④ キー変換 ⑤ 実践パターン ⑥ Sleep ⑦ 全体像 ⑧ リーダー選定 ⑨ 閉域転送(今ここ)
💡 次のステップ
全角文字を含むQRを閉域環境で生成・転送したい → 記事⑪「全角QR生成の設計メモ」へ。完全版コードは後日公開検討ですが、外部ライブラリなしで考える場合の設計方針を整理しています。
異なるシステム間でデータを移行したい → 記事⑩「システム間データ移行」へ。
リーダーの選び方を知りたい → 記事⑧「QRリーダーの選び方と接続方法」へ。
もう一度基礎に戻りたい → 記事①「QR生成と基礎」へ。

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

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

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