Qraft (クラフト)

QR コードのバージョン 1-40 は何が違うのか - サイズと容量の完全ガイド

バージョンとは「マス目の数」のこと

QR コードの「バージョン」とは、コードを構成するマス目 (モジュール) の数を表す規格です。バージョン 1 は 21×21 モジュール、バージョン 2 は 25×25 モジュール、以降バージョンが 1 上がるごとに 4 モジュールずつ増え、最大のバージョン 40 は 177×177 モジュール (31,329 マス) になります。

モジュール数が増えるほど格納できるデータ量が増えますが、同時にコードの物理的なサイズも大きくなるか、各モジュールが小さくなります。つまり、バージョンが高いほど「たくさん入るが、読み取りが難しくなる」というトレードオフがあります。

バージョンごとの容量 - 実用的な目安

実際にどのバージョンでどれくらいのデータが入るのか、誤り訂正レベル M (15% 復元) の場合の目安を示します。バージョン 1 (21×21) は数字のみで最大 34 桁、英数字で 20 文字。ただし小文字を含む通常の URLバイトモードになり、バージョン 1 (レベル M) では最大 14 バイトのため、https://example.com のような短い URL でも実際にはバージョン 2 以上が出発点になります。

バージョン 5 (37×37) は数字 202 桁、英数字 122 文字。UTM パラメータ付きの長い URL も余裕で格納できます。バージョン 10 (57×57) は数字 513 桁、英数字 311 文字。vCard (電子名刺) の基本情報が収まります。バージョン 40 (177×177) は数字 5,596 桁、英数字 3,391 文字。ただし、バージョン 40 を実用的に使う場面はほぼありません。モジュールが極めて小さくなり、高解像度印刷と近距離でのスキャンが必要になるためです。

バージョンは自動で決まる - 手動指定が必要な場面

QR コード生成ツールの大半は、入力データの量に応じてバージョンを自動的に選択します。短い URL を入力すればバージョン 2-3 程度の小さなコードが生成され、長いテキストを入力すればバージョンが自動的に上がります。通常はこの自動選択で問題ありません。

手動でバージョンを指定すべき場面は、印刷サイズに制約がある場合です。名刺に印刷するなら一辺 15-20 mm が限界なので、バージョン 5 以下に抑える必要があります。逆に、大型の看板やポスターに印刷する場合は、バージョンが高くても各モジュールを十分な大きさで印刷できるため、制約は緩くなります。

誤り訂正レベルとバージョンの関係

同じデータ量でも、誤り訂正レベルを上げるとバージョンが上がります。誤り訂正レベル L (7% 復元) ならバージョン 3 で収まるデータが、レベル H (30% 復元) ではバージョン 5 が必要になる、といった具合です。誤り訂正データが追加される分、全体のモジュール数が増えるためです。

実用上の推奨は、通常用途ではレベル M (15%)、屋外や汚れやすい環境ではレベル Q (25%)、ロゴを埋め込むデザイン QR コードではレベル H (30%) です。レベル L は容量を最大化したい場合にのみ使用し、耐久性が求められる場面では避けてください。

容量と読み取りやすさは引き換えになる

バージョンを上げれば入るデータは増えますが、同じ大きさに刷るなら 1 マスあたりの寸法はその分だけ小さくなります。小さいマスは、カメラの解像度・手ブレ・薄暗さ・インクのにじみ・斜めからの読み取りといった条件の悪化にそのまま弱くなります。汚れや擦れで覆われる面積が同じでも、失われるマスの数は増えるため、誤り訂正で復元しきれない場面が早く訪れます。

そのためバージョンは、自分で選ぶ数値というより、入れたデータの量から決まる結果と考えるほうが実態に近いです。読み取りやすさを上げたいときにバージョンだけを下げることはできず、下げたいなら入れるデータそのものを見直すしかありません。必要なデータが収まる範囲で、できるだけ低いバージョンに収める、という順序で考えます。

判断の順序としては、まず媒体で使える一辺の長さを決め、次にどのくらいの距離から読み取るのかを想像し、その条件で 1 マスが十分な大きさを保てるバージョンの上限を出します。入れたいデータがその上限を超えるなら、コードを大きく取るか、データを削るかの二択です。容量と読み取りやすさは引き換えの関係にあるので、どちらを譲るのかを先に決めておくと設計が迷いません。

バージョンが切り替わる境目を押さえる

バージョンごとの容量は連続ではなく段になっています。誤り訂正レベル M でバイトモードの場合、バージョン 4 の上限は 62 バイト、バージョン 5 の上限は 84 バイトです。62 バイトの URL に 1 文字足して 63 バイトになった瞬間、コードは 33×33 から 37×37 に切り替わります。同じようにバージョン 7 は 122 バイト、バージョン 8 は 152 バイトが上限で、境目をまたぐと 45×45 から 49×49 になります。

この段があるため、実務では上限ぴったりを狙いません。段の上端で設計すると、後から URL に 1 文字加えただけでバージョンが上がり、同じ大きさに刷ったときのマスの細かさが変わってしまいます。ひとつ下の段の上限に収めておけば、多少の文字数の増減では模様の粗さが変わりません。

見落としやすいのが、日本語を含む URL です。アドレス欄では 1 文字に見えても、QR コードに入るのはパーセントエンコーディングされた形で、日本語 1 文字が 9 バイトを占めます。日本語 4 文字のパスを足すだけで 36 バイト増えるため、英数字だけなら 60 バイト台でバージョン 4 に収まっていたものが、一気に 2 つも 3 つも上のバージョンになることがあります。

刷った後に行き先を変える可能性があるなら、埋め込む文字列の長さを固定しておくと安全です。転送を挟む設計にすれば、刷った URL 自体は変えずに行き先だけ差し替えられるので、バージョンも模様も動きません。行き先の URL を直接埋め込むと、差し替えのたびに文字数が変わり、刷り直せない媒体では対応できなくなります。

用途別のおすすめバージョン

URL のみ (62 バイトまで): バージョン 3-4。名刺、チラシ、ポスターなど、ほとんどの用途はここに収まります。誤り訂正レベル M なら 42 バイトまでがバージョン 3、62 バイトまでがバージョン 4 です。

Wi-Fi 接続情報: バージョン 5-7。SSIDパスワードの長さによって変動します。バージョン 5 で 84 バイト、バージョン 7 で 122 バイトまで入るので、長いパスワードを使うなら 7 まで見ておきます。

vCard (電子名刺): バージョン 10 前後から。基本情報だけで 200 バイト前後になり、住所や役職まで入れるとバージョン 17 (504 バイト) あたりまで上がります。名刺のような小さな印刷面では、連絡先ページの URL に短縮して格納する方が実用的です。

日本語の長文: バイトモードでは 1 文字 3 バイトなので、150 文字で 450 バイト、バージョン 16 が必要になります。バージョン 20 を超えるコードは、マス目が細かくなりすぎて印刷と読み取りの条件が厳しくなるため、特殊な産業用途を除いておすすめしません。