バーコードのチェックデジットについて
久々の書込みです、、、
顧客のバーコードプログラム改修の関係で、バーコードのサンプル(NW7)をいただいて、それがどのチェックデジットを使用しているか調査をしたんです。それでチェックデジットの種類をいろいろ調べたのですが、これがまたたくさんあるわけですよ、、、
<NW7>
・セブンチェック7DR
・セブンチェック7DSR
・モジュラス10ウェイト2・1分割
・モジュラス10ウェイト2・1一括
・モジュラス10ウェイト3-1
・モジュラス11ウェイト2~7
・モジュラス11ウェイト1~0
・ナインチェック(9DR)
・ナインチェック(9DSR)
もらったサンプルを元に、末尾の数字が上記のチェックデジットに合っているか調べるんですが、メチャクチャ時間かかるんです、、、、
そこで「Excelで自動計算できるのを作った方がいいんじゃね?」と思ったわけです。それがドハマりの始まりでした。めったに使わないであろうこのExcel計算式を完璧にしたい、、、というおバカな(費用対効果0)考えをしてしまいました。
しかも「CODE39のモジュラス43も必要なんじゃ、、、、」と思い始めて、VBAで出来るのかいろいろサイト巡っても、サイトはあるにはあるのですが、古いのかVBAが動かない、、、、、
Function mdl43(rng)の標準モジュールのやつが動かないんです、、、
諦めかけてたところ、このサイトをみつけました!
救いの神がいたわけです。このサイトを参考に、
・modulus43(値&チェックデジットを出力)
・modulus43B(チェックデジットだけを出力)この文を変更→modulus43B = lst(tot Mod 43)
の2つを作って見事動くようになりました!
Excelをxlsmで保存して社内の共有フォルダに入れておきましたが、「使う人いないだろうな、俺ももう使わないだろうな、、、」って気がします(´;ω;`)
せっかく作ったんで、需要はないかもしれませんが公開します!
左側によく使うNW7セブンチェックとCODE39を配置してます。右側はめったに使わないと思いますが、最大9桁の数字のチェックデジットが計算できるはずです。
マクロを有効にしてください。黄色背景の部分以外は余り入力しないでくださいね。計算式が入っていますんで、、、、、
以上!