バーコードROBO7:チェックデジットについての補足

インデクス

チェックデジットは、バーコード・リーダーによる読み取り時にエラーがないかをチェックするためにコードデータを元に計算された値です。計算方法はバーコードにより様々です。
「バーコードROBO7」では必要または選択に応じてチェックデジットを自動計算表示します。(※1)
チェックデジットはバーコード種によっては数字だけとは限りません。また一桁とは限りません。
バーコード種によってはチェックデジットをコード文字の末尾に追加表示するものとしないものとがあります。
以上はすべて JIS/ISO 規格によります。

参考:チェックデジットの自動計算入力フォーム(GS1 Japan) // 2026.01:確認
https://www.gs1jp.org/code/jan/check_digit.html

注意:「バーコードROBO7」では入力コードが正しくない場合にはチェックデジット欄に「?」または「??」が表示されます。

バーコードによってはチェックデジットが必須でなかったりチェックデジットの計算方法をいくつかから選べるものがあります。これを「バーコードROBO7」では該当パネルの「チェックデジット・オプション」として指定できます。
詳細はバーコード種ごとのページをお読みください。
以下では「バーコードROBO7」の「チェックデジット・オプション: 種類」のうちウェイトの掛け方を表記してあるものについて説明します。

モジュラス10/ウェイト2,1(分割):

先ずデータの各桁を独立した一桁の数値とみなす。
データ右端の数値から左方向へ順にウェイトとして 2, 1, 2, 1, ... と掛けて、それぞれ十の位と一の位の数字をすべて加算する。(「分割」の意味は位を分けることから)
その総和の一の位が 0 ならチェックデジットは 0 、そうでなければそれを 10 から引いた値がチェックデジットです。

モジュラス10/ウェイト2,1(一括):

先ずデータの各桁を独立した一桁の数値とみなす。
データ右端の数値から左方向へ順にウェイトとして 2, 1, 2, 1, ... と掛けて、それぞれをすべて加算する。(「一括」の意味は位を分けないことから)
その総和の一の位が 0 ならチェックデジットは 0 、そうでなければそれを 10 から引いた値がチェックデジットです。

モジュラス10/ウェイト3,1:

先ずデータの各桁を独立した一桁の数値とみなす。
データ右端の数値から左方向へ順にウェイトとして 3, 1, 3, 1, ... と掛けて、それぞれをすべて加算する。
その総和の一の位が 0 ならチェックデジットは 0 、そうでなければそれを 10 から引いた値がチェックデジットです。

モジュラス11/ウェイト2~7:

先ずデータの各桁を独立した一桁の数値とみなす。
データ右端の数値から左方向へ順にウェイトとして 2, 3, 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, 2, 3, ...(2~7の繰り返し) と掛けて、それぞれをすべて加算する。
その総和を 11 で割った余りを求める。
その余りが 0 ならチェックデジットは 0 、余りが 1 の場合は欠番とし、そうでなければその余りを 11 から引いた値がチェックデジットです。

注意:計算方法の特質により欠番が生ずることがあります。特に連番出力の際にはご注意ください。

モジュラス11/ウェイト1,2,3...:

先ずデータの各桁を独立した一桁の数値とみなす。
データ右端の数値から左方向へ順にウェイトとして 1, 2, 3, 4, 5, ... と掛けて、それぞれをすべて加算する。
その総和を 11 で割った余りを求める。
その余りが 0 ならチェックデジットは 0 、余りが 1 の場合は欠番とし、そうでなければその余りを 11 から引いた値がチェックデジットです。

注意:計算方法の特質により欠番が生ずることがあります。特に連番出力の際にはご注意ください。

モジュラス43、モジュラス103、他:

対応バーコードの規格書などをご覧ください。 → 「バーコードに関する参考文献など」ページ参照


(※1)自動計算されたチェックデジットを任意に変更することはできません。ただし「バーコードROBO7」では「コーダバー(NW-7)」のように「チェックデジット・オプション」で「処理しない」を選択することで任意のチェックデジットをコードデータに含めることができる場合があります。