調べて分かる道具箱

バーコードの線を読む

扱うのは EAN-13(JANコード標準タイプ)・EAN-8(短縮タイプ)・UPC-Aだけです。Code128・ITF・CODE39 は扱っていません。

見本でためす

ここで描いた線を、売る商品に貼ってはいけません。実際の商品に付ける番号は GS1 Japan から借りる手続きが要ります(3年払い・年間売上高 1億円未満で初期申請料11,000円+登録管理費16,500円)。 見本の番号が全部2で始まるのは、02と20〜29が「店や地域の中だけで使う」帯として 規格で空けてあるからです(GS1 General Specifications 2.1.11.4)。 自由研究で紙に貼るなら、この帯を使ってください。

標準タイプ(EAN-13・JANコード)
線の太さ
2001234567893 のバーコード2001234567893
線の本体左3+左半分42+中央5+右半分42+右3
95 モジュール
余白を入れると左11・右7
113 モジュール
基準の大きさでの横幅113 × 0.33mm
37.29 mm

ガードバー(左・中央・右)が下に長いのは、規格の決まりです。規格が 「5モジュールぶん下に伸ばすこと」と決めています (5 × 0.33 = 1.65mm)。

⭐ 先頭の1桁は、字形の並びで表します

左半分6つの字形は AABBAB の並び。 この並びが先頭桁 2 を表しています (GS1 General Specifications 表5-5)。

押すと、左半分の線だけが入れ替わります。右半分は動きません (13桁目のチェックデジットは計算し直すので、そこだけ変わります)。

先頭桁左半分6つの字形いまの番号
0AAAAAA
1AABABB
2AABBAB▶ これ
3AABBBA
4ABAABB
5ABBAAB
6ABBBAA
7ABABAB
8ABABBA
9ABBABA
7モジュールで1つの数字
位置数字字形4つの幅7桁の0と1黒の数奇偶
左10A3 2 1 100011013奇数
左20A3 2 1 100011013奇数
左31B1 2 2 201100114偶数
左42B2 2 1 200110114偶数
左53A1 4 1 101111015奇数
左64B2 3 1 100111014偶数
右75C1 2 3 110011104偶数
右86C1 1 1 410100002偶数
右97C1 3 1 210001002偶数
右108C1 2 1 310010002偶数
右119C3 1 1 211101004偶数
右123C1 4 1 110000102偶数

⭐ 「4つの幅」を足すと、どの行も必ず7になります。 合計が7にならなければ読み違えたと分かる ── 規格はこれを キャラクタセルフチェックと呼んでいます。

最後の1桁は計算で出ます
位置数字重みかけ算
12×12
20×30
30×10
41×33
52×12
63×39
74×14
85×315
96×16
107×321
118×18
129×327

合計 97 → 97以上でいちばん近い10の倍数は 100 → 100 − 97 = 3。 入っている最後の1桁は 3 なので、合っています。

番号の頭について: 店や地域の中だけで使う帯です。世界のどの商品ともぶつかりません(お店の量り売りの惣菜などに貼られています)。⭐ このページの例が全部2で始まるのはこのためです。
出どころ: GS1 General Specifications 2.1.11.4

やってみる

1問目 / 全6問

13桁のJANコードのうち、バーコードの線として直接描かれているのは何桁ですか?

よくある質問

バーコードの13桁のうち、線になっているのは何桁ですか

12桁です。中央のガードバーの左に6つ、右に6つで12個ぶんの場所しかありません。残る先頭の1桁は、線の形そのものではなく「左半分6つの数字を、黒が奇数モジュールの字形(数字セットA)と偶数モジュールの字形(数字セットB)のどちらで描いたか」という6文字の並びで表されています。GS1 General Specifications の表5-5 と JIS X 0507:2004 の表3 が、0=AAAAAA、4=ABAABB のように10通りの対応を定めています。だから先頭の数字を変えると、左半分の線がごっそり入れ替わります。上の道具の先頭桁ボタンで実際に見られます。

チェックデジットはどうやって計算しますか

12桁を右から見て、1つおきに3倍・1倍の重みを掛けて全部足します。その合計以上でいちばん近い10の倍数から合計を引いた残りが、13桁目のチェックデジットです(GS1 General Specifications 7.9.1)。たとえば GS1 Japan が例に挙げている事業者コード456995111・商品アイテムコード617なら合計121、130−121=9になります。この道具は掛け算の1行1行と合計まで出すので、途中で止まらずに追えます。

チェックデジットが合っていれば、打ち間違いは無いと言えますか

言えません。1桁だけ間違えたときは必ず見つかります。ところが隣り合う2桁を入れ替えたときは、合計が「2×(2つの数字の差)」だけしか動きません。差が5のとき(1と6、2と7、3と8、4と9)はちょうど10動くので、合計の下1桁が変わらず、チェックデジットは合ったままになります。つまり「16」を「61」と打ち間違えても見つけられません。チェックデジットは「よくある間違いの多くを捕まえる仕掛け」であって、正しさの保証ではありません。

45や49で始まるバーコードの商品は、日本で作られたものですか

そうとは限りません。GS1 Japan は自分のサイトで「GS1 Japanでは『45』または『49』で始まる9桁、10桁または7桁の番号を貸与しています」と書いています。45や49は「GS1 Japan が番号を貸した」という印で、どこで作られたかの印ではありません。GS1 General Specifications の用語集も、GS1 Prefix は各国のGS1組織に割り当てられるものだと定義していて、産地とは書いていません。そもそも原産国は AI(422) という別のデータ項目に、ISO 3166 の3桁の国番号で入れると同じ規格の3.7.15 に決まっています。日本の会社が海外の工場で作らせた商品にも、45や49のJANコードが付きます。

ここで作った線を、自分の商品に貼ってもいいですか

いけません。実際の商品に付けるJANコードは、GS1 Japan からGS1事業者コードを貸してもらう手続きが必要です。GS1 Japan の新規登録手続きのページによると、登録申請料は事業者全体の年間売上高で決まり、3年払いで年間売上高1億円未満なら初期申請料11,000円+登録管理費16,500円(消費税10%込)です。手続きをせずに他人の番号帯を貼ると、店の在庫や売上が別の会社の商品として記録されてしまいます。自由研究で紙に貼るだけなら、この道具の見本のように「2」で始まる番号を使ってください。GS1 General Specifications 2.1.11.4 が、02と20〜29を「店や地域の中だけで使う」帯として空けているので、世界のどの商品ともぶつかりません。

どうしてレジは、商品をどの向きに通しても読めるのですか

左半分と右半分で、線の作り方が変えてあるからです。規格は「数字セットAとBの文字は必ず左側の白いモジュールで始まり、右側の黒いモジュールで終わる。数字セットCの文字は必ず左側の黒いモジュールで始まる」と決めています。右半分は必ず数字セットCなので、読み取り機は最初に読んだ文字が白始まりか黒始まりかで「いま逆さから読んでいる」と気づき、読んだ並びをひっくり返せます。規格が EAN/UPC を「全方向読取り可能」と書いているのは、この作り分けがあるからです。

バーコードを赤いインクで印刷してはいけないのは、なぜですか

読み取りの検査が赤い光で行われるからです。JIS X 0507:2004 の4.7 は、最低シンボルグレードを「1.5/06/670」と定めていて、この670は検査に使う光の波長670±10nm、つまり赤い光を指します。附属書Fにも「最大感応波長:633nm[シンボルを可視(赤色)スペクトルで走査することを意味する]」と書かれています。赤いインクは赤い光をよく返してしまうので、バーなのに明るく写り、白い紙と区別がつきません。GS1 Japan も「とくに赤系統の色でバーを印刷すると、読み取りができなくなるので避けてください」と名指しで書いています。逆に、青や緑のバーは赤い光をあまり返さないので、読めることがあります。

本の裏にあるバーコードが2段になっているのは、なぜですか

上と下で別の規格だからです。GS1 Japan の「書籍JANコード」のページによると、1段目は「978」から始まる国際標準コードのISBN用バーコード、2段目は日本独自の図書分類と税抜き本体価格です。この2段を合わせたものが「日本図書コード」と呼ばれ、1990年3月に流通システム開発センターと出版業界が合意して制定されました。つまり下の段は日本の中だけの決まりです。書籍JANコードの申請窓口も、ふつうのJANコードとは別(日本出版インフラセンター 日本図書コード管理センター)です。

バーコードの左右にある白い余白は、飾りですか

飾りではなく、規格で決められた部品です。GS1 General Specifications 表5-11 は、EAN-13 の余白(クワイエットゾーン)を左11モジュール、右7モジュールと定めています。線の本体が95モジュールなので、余白を合わせると113モジュール(表5-12)。基準の大きさでは1モジュール0.33mmなので、113×0.33=37.29mm になります。ここが足りないと、読み取り機は「どこからがバーコードか」を判断できず読めません。左が右より広いのは、左側に13桁目の先頭の数字を置く場所が要るからです。

お菓子の袋にある13桁の数字を打つと、その場でバーコードの線を描いて、どの線がどの数字かを7本ずつ区切って並べます。 13桁のうち線になっているのは12桁だけなので、 先頭の1桁がどこに隠れているかも一緒に見せます。

13桁なのに、線として描かれているのは12桁だけ

JANコードは13桁ですが、バーコードの線を7本ずつ区切って数えると、 中央のガードバーの左に6つ、右に6つ、合わせて12個分の場所しかありません。 足りない1つ、いちばん左の数字はどこに行ったのか。 答えは「左半分6つの字形の選び方」です。

左半分の各数字には黒が奇数モジュールの字形(数字セットA)と偶数モジュールの字形(数字セットB)の2通りがあり、 そのAとBの並び方6文字が先頭桁を表します。 GS1 General Specifications の表5-5、 JIS X 0507:2004 の表3 が対応を定めていて、たとえば ABAABB なら先頭桁は4です。 だから先頭の数字を変えると、線の形そのものが変わります。

この話は、このサイトが見つけたことではありません。ねとらぼ(2019年6月25日)(新しいタブで開きます)とQuizKnock(2019年8月26日)(新しいタブで開きます)が対応表つきで、しかも面白く書いています。読み物として先にそちらを読んでもかまいません。 ⭐ 無かったのは記事ではなく、自分の手で先頭桁を変えて、線がどう入れ替わるかを 確かめられる道具のほうでした。

7モジュールで1つの数字。だから幅を4つ足すと必ず7になる

バーコードでいちばん細い線の幅を1モジュールと呼びます。 JAN/EANでは1つの数字が必ず7モジュールぶんで、その中に 白・黒・白・黒(右半分は黒・白・黒・白)の4つの区画が入ります。 1つの区画の幅は1・2・3・4モジュールのどれかで、4つを足すと必ず7になります。

GS1 General Specifications 5.2.1.1 は「seven modules per symbol character」 「four elements per symbol character comprising two bars and two spaces, each of one, two, three, or four modules in width」と書いています。 この「足して7」という決まりが効いていて、区画を4つ読んで合計が7にならなければ、 その時点で読み違えたと分かります。規格はこれをキャラクタセルフチェックと呼んでいて、JIS X 0507 も 「キャラクタセルフチェック:有り」と書いています。 上の道具が7モジュールごとの 表を出して、4つの幅と合計を毎回見せているのは、合計の欄がいつも7なのを 見てもらうためです。

左半分と右半分では、同じ数字でも線の形が違う

同じ「5」でも、中央より左にある5と右にある5は形が違います。 規格は3つの表を持っていて、左半分では数字セットAとB、右半分では必ず数字セットCを 使います。この3つは無関係ではありません。規格は 「数字セットCのキャラクタは数字セットBのキャラクタを左右逆に表したもの」と 書いています。さらに実際に表を写して確かめると、CはAの白と黒をそっくり入れ替えたものになっていました (このサイトで10個すべて検算し、単体テストとして固定しています)。

そしてもう1つ。「数字セットA及びBのシンボルキャラクタは常に左側の白モジュールで始まり 右側の黒モジュールで終わる。数字セットCは常に左側の黒モジュールで始まる」。左半分は必ず白で始まり、右半分は必ず黒で始まる。だから読み取り機は、コードを逆さまから読んでしまっても 「いま右半分から読んでいる」と気づけます。 レジで商品をどの向きに通しても読めるのは、 この作り分けのおかげです。

長さは95モジュールと決まっている。37.29mmはその掛け算そのもの

EAN-13の線の並びは、左のガードバー3、左半分6文字ぶん42、中央のガードバー5、 右半分42、右のガードバー3で、合計95モジュールです(表5-17)。 これに左の余白11モジュール、右の余白7モジュールを 足すと113モジュール(表5-11・表5-12)。 基準の大きさでは1モジュールが0.33mmなので、113×0.33=37.29mmになります。

ここで面白いのは、GS1 Japan がJANシンボルの基本寸法を 「縦25.93mm、横37.29mm(左右に必要な余白を含む)」と 別のページで公表していることです。片方は規格のモジュール数、片方は日本語の解説ページ なのに、掛け算をすると小数点以下までぴたりと合いました (この検算はこのサイトで実際に行い、単体テストにしてあります)。 本体だけなら 95×0.33=31.35mm です。

ついでに、左右と中央のガードバーが下に長く飛び出しているのも飾りではありません。 規格が「5モジュールぶん(1.65mm)下に伸ばせ」と決めています。

最後の1桁は計算で出る。そして5違いの入れ替えだけは見つけられない

13桁目のチェックデジットは、前の12桁から計算します。右から数えて1つおきに3倍と1倍の 重みを掛けて全部足し、その合計以上でいちばん近い10の倍数から引いた残りが答えです(7.9.1)。 GS1 Japan が例に挙げている事業者コード456995111・ 商品アイテムコード617で試すと、合計121→130−121=9になりました。

この仕組みは、1桁だけ打ち間違えたときには必ず気づけます。3倍の位置なら合計が 3の倍数ぶん、1倍の位置なら差のぶんだけずれて、10の倍数のままにはならないからです。 ところが隣り合う2桁を入れ替えたときは事情が違います。 入れ替えで合計は「2×(2つの数字の差)」だけ動くので、差が5のとき(1と6、2と7、3と8、4と9)はちょうど10動き、 合計の下1桁が変わりません。 つまり「16」を「61」と打ち間違えても、 チェックデジットは合ってしまいます。チェックデジットは万能ではない、 というのはここのことです。

45と49は「日本製」の印ではない

「最初の2桁は国コードで、日本なら45か49」という言い方をよく見ます。半分だけ当たっています。GS1 Japan(一般財団法人流通システム開発センター)は自分のサイトで 「GS1 Japanでは『45』または『49』で始まる9桁、10桁または7桁の番号を貸与しています」と書いています。 つまり45や49は、GS1 Japan がその事業者に番号を貸したという印です。 GS1 General Specifications の用語集も、GS1 Prefix を「各国のGS1組織に割り当てられるもの」 と定義していて、産地とは書いていません。

では産地はどこに書くのか。ちゃんと別の場所があります。同じ規格の3.7.15 で、 商品の原産国は AI(422) という専用のデータ項目に ISO 3166 の3桁の国番号で入れると決められています。だから 「45で始まるから日本で作られた」とは言えません。 日本の会社が海外の工場で作らせた商品にも、45や49のJANコードが付きます。

上の道具は、番号の頭について確かめられたことしか書きません。 GS1 のプレフィックス一覧は原典(gs1.org)が開けなかったので、 45・49(GS1 Japan)/978・979(書籍JAN)/02・20〜29(規格 2.1.11.4)以外は何も出しません。「たぶん◯◯の国」と書かないためです。

赤いインクでバーを刷ると読めなくなる。規格が赤い光で検査するから

GS1 Japan は「GTIN(JANコード)の作成手順」で、刷り色について 「白地に黒いバーが最も望ましい」 「とくに赤系統の色でバーを印刷すると、読み取りができなくなるので避けてください」 と書いています。なぜ赤だけ名指しなのかは、規格を開くと分かります。

JIS X 0507:2004(ISO/IEC 15420:2000)4.7 は、シンボルの最低品質グレードを 「1.5/06/670」と定めていて、この670は検査に使う光の波長670±10nm、 つまり赤い光のことです。附属書Fにははっきり 「最大感応波長:633nm[シンボルを可視(赤色)スペクトルで走査することを意味する]」 と書かれています。 赤い光を当てて、バーが暗く・スペースが明るく見えるかを見るわけです。赤いインクは赤い光をよく返してしまうので、バーなのに明るく写り、 白い紙と区別がつきません。 バーコードは「黒い線」ではなく「赤い光を返さない線」なのです。

ここで描いた線を、商品に貼ってはいけない

この道具は、打った数字がどんな線になるかを見せるためのものです。 実際の商品に付けるJANコードは、GS1 Japan からGS1事業者コードを 借りる手続きが要ります。 GS1 Japan の新規登録手続きのページによると、 登録申請料は事業者全体の年間売上高で決まり、3年払いの場合、 年間売上高1億円未満で初期申請料11,000円+登録管理費16,500円(消費税10%込)です。 書籍JANコードはまた別で、日本出版インフラセンター 日本図書コード管理センターの窓口があり、申請料は3年分で11,000円〜110,000円です。

手続きを踏まずに他人の番号帯の数字を商品に貼れば、店の在庫や売上が 別の会社の商品として記録されてしまいます。 だからこのページの見本の番号は、 全部「2」で始めてあります。 GS1 General Specifications 2.1.11.4 が 「02と20〜29は、限られた地域の中で使うために予約されている」と定めているので、 この帯の数字は世界のどの商品ともぶつかりません。 自由研究で線を描いて紙に貼るなら、この帯を使ってください。

出どころ: 数表(数字セットA/B/C・先頭桁の対応・ガード・余白・95モジュール・0.33mm・チェックデジットの算法・02と20〜29の帯・AI(422))はGS1 General Specifications(新しいタブで開きます)(PDF 579頁を取得して読みました)。 パリティの定義・左右の始まり方・検査波長670nmはJIS X 0507:2004 の日本語全文(新しいタブで開きます)。 寸法と刷り色、45・49の貸与、チェックデジットの例、登録手続きの料金はGS1 Japan(新しいタブで開きます)です。 確かめられなかったこと ──【1】JIS X 0507 の表1・表2・表3は画像で数値が読めなかったので、数値は GS1 General Specifications から 取り、JIS は文章の記述の出典に使っています。【2】gs1.org 本体と ISO/IEC 15420 の原本は どちらも 403 で開けませんでした。だからプレフィックスの一覧は載せていません。