コード128(Excelでバーコード_5)

Excelでバーコード表示に挑戦する連載の5回目です。前回の記事はコチラです。

hirocom777.hatenadiary.org

前回はコード39のバーコードを作成、表示するツール(BarCode39.xlsm)の簡単な使用例についてご紹介しました。

今回は、ツール(BarCode39.xlsm)で対応できていないアルファベットの大文字、小文字の区別について考えてみようと思います。

コード128

そもそもの問題は、適用しているバーコード規格であるコード39が原因です。コード39で表現できる文字種類は43種類となっています。この中にアルファベットの大文字、小文字を区別したものはありません。アルファベットの大文字、小文字を表現するには別の規格が必要です。そこで今回個紹介するのがコード128となります。 コード128は128種類の文字を表現できるバーコード規格です。

コード128の概要

コード128のバーコードを構成するコードは3本の黒いバーと3本の間隔(最後の間隔は次のコードとの間隔)で構成されています。バーおよび間隔の太さは4段階に分かれていて、一番細いバーの太さを1とすると、2,3,4の4種類になります。1つのコードを構成するバーと間隔の太さを合計すると11になります。また、バーの太さの合計は偶数となり、間隔の太さの合計は奇数にります。ストップコード(バーコードの終わりを表すコード)だけはこれらのルールから少し外れます。コード39では1つのコードに1つの文字が割り当てられていましたが、コード128では1つのコードに3通りの割り当て方があります。また、ストップコードを除く各コードには0~105の番号が割り当てられています。仕様詳細は以下をご参照ください。

kikakurui.com

コード128のバーコードは以下のコードで構成されています。

  1. スタートコード

    バーコードの開始を表すコードです。スタートコードは3種類あり、バーコードで使用するコードと文字の割り当て方を指定します。

  2. データ

    バーコードで表記する文字列のコードを連続して配置します。

  3. チェックデジット

    スタートコードとデータのコードから計算される番号に該当するコードを配置します。読み込んだ内容が正しいかどうか答え合わせをするためのコードです。

  4. ストップコード

    バーコードの終了を表すコードです。ストップコードは他のコードと異なり、4本の黒いバーと3本の間隔で構成されています。バート間隔の太さは並び順に2,3,3,1,1,1,2に固定されています。

スタートコード

上でも述べた通り、スタートコードは3通りあります。それぞれ「CODE-A」、「CODE-B」、「CODE-C」と呼ばれていてコードと文字の割り当て方を指定します。割り当ての詳細は、上でご紹介したURLを参照してください。

  • CODE-A

    CODE-Aを指定した場合は、アルファベット、数字、記号に加えて改行コードなどの制御コードも使用できます。アルファベットは大文字のみとなります。

  • CODE-B

    CODE-Bを指定した場合は、制御コード以外はCODE-Aとほぼ同じ文字を使用できます。制御コードの代わりにアルファベットの小文字が使用可能なります。

  • CODE-C

    CODE-Cを指定した場合は、各コードに「00」~「99」までの2桁の数値が割り当てられます。数値のみで構成されているデータの場合、コンパクトなバーコードで表示できます。

これらのコードはデータ部分にも配置できます。続くコードには、該当する文字の割り当てが適用されます。

チェックデジット

コード128のチェックデジットはモジュラス103という方式が使用されます。以下にその計算方法をご紹介します。

  1. スタートコードとデータの最初のコードに割り当てられている番号を足す。
  2. 上の数値に、データの2番目以降のコードに数値を掛けたものを足していく。掛ける数値は2番目が2、3番目が3と増やしていく。
  3. 上の数値を103でわって余りを求める。
  4. 求めた余りがチェックデジットとなるので、その番号が割り当てられているコードを配置する。

以下にチェックデジットの計算例をご紹介します。CODE-Bを指定して「ABC」という文字を指定した場合です。各コードの番号と計算した結果は以下の様になります。

データ 番号 掛ける値 掛けた結果
CODE-B 104 1 104
A 33 1 33
B 34 2 68
C 35 3 105

合計は、104+33+68+105で「310」となります。これを103で割ると余りは1になります。したがって、チェックデジットは「!」(CODE-Cでは「01」)を表すコードが適用されます。

ちょっと複雑

今回はコード128の概略でした。コード128を使えばアルファベットの大文字、小文字を区別できることが判りました。でも、ちょっと複雑ですね。次回はこれを踏まえてバーコードデータを作成するツールを作っていこうと思います。お楽しみに!!

hirocom777.hatenadiary.org

Excelでバーコード表示に挑戦する連載はコチラから