QRコードとは?仕組み・種類・作り方・安全な活用法までやさしく解説

ナレッジ

QRコードは、URLや文字列を2次元のマトリクスに記録するコード。仕組み、誤り訂正、容量、静的/動的の違い、作成手順、サイズ・余白の目安、セキュリティ対策を実務目線で解説。


この記事のポイント

  • まずは「構造・容量・誤り訂正」を理解
  • 使い分けは「静的 vs 動的」が基本軸
  • 読み取りやすさは「サイズ」「余白」「コントラスト」で決まる
  • セキュリティは“貼られているQRを疑う”が第一歩

QRコードの基本

QRコードは、白黒の小さな四角(モジュール)で情報を表現する2次元コードです。URL、テキスト、名刺情報、決済情報などを埋め込め、スマホのカメラやアプリで瞬時に読み取れます。

構造のざっくり図解

  • 位置検出パターン:3つの大きな四角で向き・位置を特定
  • 整列パターン:歪み補正
  • フォーマット・バージョン情報:誤り訂正やマスクの指定
  • データ領域:実際のデータが入る部分

バージョンと容量(目安)

  • バージョン1~40(最小21×21マス、以後4マス刻みで拡大)
  • 最大格納量の目安
  • 数字:約7,089桁
  • 英数字:約4,296文字
  • バイト:約2,953バイト
  • 漢字:約1,817文字
    ※実際は誤り訂正やマスクで前後します。

誤り訂正レベル

  • L/M/Q/H(約7/15/25/30%の欠損を復元可能)
  • ロゴを載せる、屋外で汚れやすい等はQ/Hを選ぶと安心。

種類と使い分け

  • モデル2:現在主流の標準規格。迷ったらこれ。
  • マイクロQR:小面積向け。データ量が少ない用途に。
  • デザインQR / フレームQR:ロゴや装飾を重視。誤り訂正を上げ、実機で入念にテスト。

静的QRと動的QRの違い

種別中身メリットデメリット向いている用途
静的直接URL・テキスト低コスト・寿命が長い内容の変更不可、解析が困難配布済みチラシ、店頭POP、名刺など
動的リンク先を中継(短縮URL等)後から遷移先変更可アクセス解析可中継先の運用が必要キャンペーンLP、季節商品、効果測定

読み取りやすさを左右する3条件

  1. サイズ
  • 印刷:辺2cm以上が最低目安。読み取り距離×0.1〜0.2程度を基準に拡大。
  • 屋外ポスターや高密度コードは余裕を持って大型化
  1. 余白(クワイエットゾーン)
  • 最低4モジュールを確保。背景の模様や文字が入り込まないように。
  1. コントラスト
  • 暗色(前景)×明色(背景)。光沢紙やガラス面は反射で読みにくくなるため要テスト。

実務TIP:URLは短縮・正規化してデータ量を減らすと、コードが“粗く”なり読み取り精度が上がることが多いです。


用途別・推奨設定サンプル

  • 名刺のプロフィール:静的/誤り訂正M/短縮URL
  • 店頭ポップ(期間限定):動的/誤り訂正Q~H/大きめサイズ+十分な余白
  • チケット・入場管理:動的(発行ID連携)/誤り訂正M~Q/固有ID+有効期限
  • 屋外ポスター:静的 or 動的/誤り訂正Q~H/高コントラスト+反射対策

作り方(かんたん手順)

  1. 目的整理:静的or動的、解析の要否、運用期間。
  2. データ準備:URLを短く・表記を統一。
  3. 生成:誤り訂正・バージョン自動・マージンを設定して出力(SVG/PNG)。
  4. 検証:iOS/Android、複数アプリ、印刷紙でテスト。
  5. 公開:印刷やWebに組み込み。運用で解析やABテストを回す(動的の場合)。

すぐ試せるコード例(ローカル用)

Python(Pillow版)

# pip install qrcode[pil]
import qrcode
img = qrcode.make("https://example.com/campaign/2025")
img.save("qr_example.png")

JavaScript(ブラウザ)

<!-- npmのqrcodeやCDN版を利用 -->
<canvas id="qrc"></canvas>
<script src="https://unpkg.com/qrcode/build/qrcode.min.js"></script>
<script>
  QRCode.toCanvas(
    document.getElementById('qrc'),
    'https://example.com/campaign/2025',
    { errorCorrectionLevel: 'M', margin: 4 },
    (err) => { if (err) console.error(err); }
  );
</script>

ありがちな失敗と回避策

  • 余白が足りない/背景がうるさい → 4モジュール以上の余白、無地背景に。
  • 高密度で潰れる → データを短縮、誤り訂正を下げる、印刷サイズを拡大。
  • ロゴで壊れる → 誤り訂正Q/H+ロゴ面積を抑える+実機テスト。
  • リンク切れ(動的) → 中継サービスの監視・更新フローを用意。
  • 追跡のしすぎ → プライバシーポリシーに明記、適切な同意管理。

セキュリティとリスク対策

  • 見知らぬ場所に貼られたQRは鵜呑みにしない(上から偽のQRを貼る“置き換え”がある)。
  • 読み取りアプリでURLプレビューを確認、不審なら開かない。
  • 決済用は正規アプリ内QRのみ使用。
  • 企業側はHTTPS必須、短縮URLは人間可読なドメインで信頼性を担保。

導入チェックリスト

  • [ ] 静的/動的を選定した
  • [ ] URLを短縮・統一した
  • [ ] 誤り訂正と余白を設定した
  • [ ] iOS/Android・複数機種で検証した
  • [ ] 印刷サイズと設置距離のバランスを確認した
  • [ ] セキュリティと運用フローを整備した

よくある質問(FAQ)

Q1. 最低サイズは?
A. 屋内の手持ち読みなら辺2cm以上を目安。距離が伸びるほど比例して拡大します。

Q2. ロゴを入れても平気?
A. 可能です。誤り訂正Q/Hに上げ、ロゴ面積を抑え、必ず実機テストを。

Q3. どの画像形式で書き出す?
A. 印刷はSVG(ベクター)推奨。汎用性重視ならPNG。WebならSVGがシャープです。

Q4. 解析はできますか?
A. 動的QRなら中継URL側でクリック数やデバイスなどの計測が可能です。


まとめ

QRコード活用の鍵は目的に応じた設計(静的/動的)と、読み取り品質(サイズ・余白・コントラスト)、そして安全性の担保です。ここを押さえれば、名刺から屋外広告、チケット運用まで幅広く“失敗しない”導入ができます。

コメント

タイトルとURLをコピーしました