エクセルでバーコード
マイクロソフトエクセル サンプル
2014-05-31 00:50:57
エクセルでバーコードの検索が多いようです。ワードのQRコードがあるのでご覧になった方はがっかりされたかもしれません。
基本的にエクセルの標準機能でバーコードは作成できないようです。無料で優秀なフリーソフトがありますので、そちらをお使いになられることをお勧めします。
以前、エクセルでバーコード作成をしたことがあったので挑戦してみましたが、以前と違いました。以前作成したバーコードは社内独自のバーコードだったようで、仕組み自体は簡単でした。
おそらくお探しのバーコードはJANコードだと思われます。
そこでJANコードのバーコード作成方法をネットで探しましたが、初めは理解しづらかったです。
13桁と8桁の物があり、通常は13桁がよくつかわれるということなので13桁のJANコードをバーコード化します。
アドオンのインストールが制限されていたり、不安がある場合にこれをお試しください。ただし、バーコードが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 |
- 5は0110001(左1を使う)
- 1は0110011(左2を使う)
- 2は0010011(左1を使う)
- 3は0111101(左1を使う)
- 4は0011101(左2を使う)
- 5は0111001(左2を使う)
- 数値13桁のルールを確認する
- チェックデジットの計算方法を数式化する
- 13桁の1桁目はバーにしない
- 1桁目の数値で左6桁の2進数が変わる
- はじめと真中と終わりに既定の数値が入る
