エクセルでバーコード

エクセルでバーコードの検索が多いようです。ワードのQRコードがあるのでご覧になった方はがっかりされたかもしれません。

基本的にエクセルの標準機能でバーコードは作成できないようです。無料で優秀なフリーソフトがありますので、そちらをお使いになられることをお勧めします。

以前、エクセルでバーコード作成をしたことがあったので挑戦してみましたが、以前と違いました。以前作成したバーコードは社内独自のバーコードだったようで、仕組み自体は簡単でした。

おそらくお探しのバーコードはJANコードだと思われます。

そこでJANコードのバーコード作成方法をネットで探しましたが、初めは理解しづらかったです。

13桁と8桁の物があり、通常は13桁がよくつかわれるということなので13桁のJANコードをバーコード化します。

jan13

アドオンのインストールが制限されていたり、不安がある場合にこれをお試しください。ただし、バーコードが1つしか作れなかったり、印刷時のことは考慮外だったりなので実用には向きません。実際にご使用になる場合は自己責任の上、よく実物と比較したり、実際のバーコードリーダーで読み込み可能かなどの検証をお願いします。

13桁のバーコードのお約束は最初の2ケタが国コード次の5ケタが企業コード次の5ケタが商品コード最後の1ケタがチェックデジットです。参考サイト http://www.dsri.jp/jan/about_jan.htm や http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%82%B3%E3%83%BC%E3%83%89

チェックデジットはそれまでの12桁から計算されるもので読み取り間違いの防止用です。http://www.dsri.jp/jan/check_digit.htm

12桁の数値からチェックデジットを計算してバーコードの画像を作る方法を考えます。

数値がどのような仕組みで黒と白のバーになっているのかは、少し面倒なルールがあります。

バーコードリーダーで読み込んで使用するので、バーコードの仕組みはコンピュータにわかりやすいものになっています。コンピュータがわかりやすいというものは2進数です。2進数を黒白のバーで表しています。

しかし、単純に2進数を当てはめているわけではなく、バーコードの天地が逆でもわかるような工夫がされています。特定の組み合わせで0から9までの数値を表しています。1つの数値を表すのに7桁の2進数を使用しています。また、国コードも含めてバーコードを作成したいのですが国際化のため国コードはバーコードに含められません。バーになっているのはチェックデジットを含む後ろからの12桁分です。

日本は45または49が国コードなので2ケタ目の5や9はバーコードに含むことは出来ますが、4を含むことは出来ません。そこで4を含まない最初の数字の6桁の組み合わせで、初めの4を表します。

最初の6桁の0から9までの数値は2種類ずつ用意しておきます。便宜上左1と左2としておきます。左1と左2の組み合わせを使って、バーコードに含まれていない4を表します。(下の表の見出しや国識別の数値は、私独自の物になっています。)国番号45の場合は4の行の国識別を使います。

 1桁目  国識別 左1 左2
0 111111 0001101 0100111 1110010
1 112122 0011001 0110011 1100110
2 112212 0010011 0011011 1101100
3 112221 0111101 0100001 1000010
4 121122 0100011 0011101 1011100
5 122112 0110001 0111001 1001110
6 122211 0101111 0000101 1010000
7 121212 0111011 0010001 1000100
8 121221 0110111 0001001 1001000
9 122121 0001011 0010111 1110100

1桁目が4から始まる場合の国識別は121122です。121122の6桁の数値はそれぞれ左1、左2、左1、左1、左2、左2を表します。(桁ごとに左につけたもの)

451234567890の数値をバーコード化するなら初めの4はバーにしません。次の512345は左1、左2、左1、左1、左2、左2のそれぞれの列から

  • 5は0110001(左1を使う)
  • 1は0110011(左2を使う)
  • 2は0010011(左1を使う)
  • 3は0111101(左1を使う)
  • 4は0011101(左2を使う)
  • 5は0111001(左2を使う)

ということになります。残りの右の5ケタは右の列から該当する数値を当てはめます。451234567890のチェックデジットは6です。チェックデジットも右の列から探します。

これで11桁+チェックデジットの12桁のバーコードの2進数が得られます。これにバーコードの始まりと終わりを示す101という数値を最初と最後に追加します。そして左6桁と右6桁の間に真ん中を示す01010を入れます。

合計、3桁+7桁×6+5桁+7桁×6+3桁 の95桁の2進数が得られます。

10101100010110011001001101111010011101011100101010101000010001001001000111010011100101010000101

この2進数の0を白、1を黒に塗りつぶせばJANコードのバーコードが出来上がります。実際のバーコードは縦横の幅など、規定があります。

セルの幅と高さを調整し1のセルを黒で塗りつぶして0のセルを白で塗りつぶすという方法もありますが、今回はグラフを使いしました。

値が0と1だけの棒グラフです。0は棒がなくて、1は棒がある。棒と棒の間をゼロにしてくっつけてあります。

ご自身でエクセルでJANコードの13桁のバーコードを作成されるときの手順をまとめておきます。

バーコードにする数値をルールに従い2進数化して1を黒0を白(何もしない)にしてバーコードに見せる

  • 数値13桁のルールを確認する
  • チェックデジットの計算方法を数式化する
  • 13桁の1桁目はバーにしない
  • 1桁目の数値で左6桁の2進数が変わる
  • はじめと真中と終わりに既定の数値が入る

13(バーにする12)桁のルールは上の表にまとまっているのでどの場合どこの数値を取得するかは国識別の数値でわかります。

あとはVLOOKUP関数、TEXT関数(頭のゼロが消えないよう文字列として扱う)、MID関数(7桁ある2進数の何文字目から何文字を取得するか)で出来ます。2進数の頭のゼロが消えないように表示形式を設定することも必要です。

バーコード作成時1ケタずつ別のセルに数値を入力するのが面倒な場合は、どこかのセルに入力した値をそれぞれのセルにばらすとか、12桁の入力時はチェックデジットを計算するが、13桁入力されたらチェックデジットは計算しないなど工夫の余地はたくさんあります。入力されたチェックデジットとエクセルで計算したチェックデジットに違いがあれば赤文字で警告する、などもよいかもしれません。

バーコード作成エクセルブックは自己責任でご利用ください。ご利用による損害、損失などの責任は一切負いませんのでよろしくお願いします。

バーコード作成エクセルブックのダウンロード

コメントを残す

メールアドレスが公開されることはありません。