ExcelVBAでバーコードを作る(Excelでバーコード_1)

皆さんこんにちはHiroCom777です。皆さんはExcelで作成した資料やドキュメントにバーコードを表示したいことありませんか?バーコードを使えば専用のバーコードリーダーに限らず、スマホなんかでも情報を読み取ることができたりと色々便利です。

僕は仕事で場コードを使う機会がちょくちょくありました。そこでExcelでバーコードを表示されるにはどうしたらいいのか考えてみたんです。この連載ではExcelでバーコードを表示させる方法をご紹介したいと思います。

Excelでバーコードを使いたい

ネットでExcelとバーコードで調べると、以下の様な情報に出くわすことがあります。

  • Access持ってない人は)Microsoft Access 2016 Runtimeをダウンロード。
  • 「開発」タブを選択して、「挿入」から「コントロールの選択」をクリック。
  • Microsoft BarCode Control XXX」を選択。

これでバーコードが使えるようになる!!! みたいな感じでかいてあるのですが・・・

実はこれ、Excelではちゃんと使えないんですよ。

Microsoft公式より

blogs.technet.microsoft.com

以下、抜粋です。

Microsoft Barcode Controlは、
日本語版Accessで使用するために開発されたActiveXコントロールです。
このため、Access上での使用において動作保証しております。
Microsoft Barcode ControlをAccess以外のアプリケーションで使用した時の
動作は保証されておらず、想定外の動作となる場合があります。

実際使ってみると何かをきっかけにバーコードのサイズが変わったり、読めないバーコードができたりしました。始末に悪いのは読めるバーコードを表示して動作することもある点です。使えないのがわかっているのなら、使えない状態にしてほしかったです。困ってしまいました。

そもそもバーコードって何?

そもそもバーコードって何でしょうか?バーコードとは、バー(白以外の色)とスペース(白)の組合せにより、数字や文字などを機械が光学的に読み取れる形で表現したものです。バーとスペースの幅や間隔によって、デジタルな情報を表します。 バーとスペースの組み合わせ方はいろいろな規格があります。その中でもシンプルでわかりやすいのがコード39です。

www.keyence.co.jp

コード39は、JIS X 0503 日本工業標準調査会「バーコードシンボル コード39 基本仕様」で規格化されています。 表すことのできるキャラクターは、数値(0~9)、アルファベット(A~Z)、記号「_ . 、 スペース、*、 $、 /、 +、 %」です。 ただし、「*」に関しては、スタート(ストップ)キャラクター(詳細後述します。)に使用されるのでデータ内では使用しない事が多いです。

コード39では1個の文字を表すのに5本のバーと、4つのバー間隔の幅(太い、細いの2種類)によってデータを表します。つまり、9本のバー(と間隔)でデジタル情報を表しているのです。ここには1つ決まりがありまして、9本のうち3本が必ず太いバー(または間隔)になります。コード39の「39」はここから来ています。ちなみに英語だと「code 3 of 9」と呼んだりします。3 of 9は「9のうち3」という意味ですね。

このバーのパターン1つ1つにそれぞれ文字が割り当てられています。

実際の運用

実際の運用なのですが、文字を表すバーコードの前後に「*」を表すバーコードが追加されます。(ない仕様もあるようなのですが、あまり一般的ではありません。)これはスタート(ストップ)キャラクターと言って、読み取る装置はこのコードを読み取ることでバーコードがどこから始まってどこまで続くのか、正対しているのか逆さまなのかを判断します。(通常バーコードは逆さまの状態でも読み取れます。)

バーコードの前後には一定以上の空白が必要で、これを「クワイエットゾーン」と呼びます。バーコードが開始される前の助走の様なものでしょうか。また、バーコードの下部には、バーコードで表される文字が表示されることがあります。無くてもバーコードとしては問題ないのですが、あった方が親切ですね。全体的なイメージは、以下の様になります。

次回は実際の表示

いかがでしょうか?これでバーコード(コード39)の概要が分かりました。次回はいよいよExcelでバーコードを表示してみようと思います。お楽しみに!!

hirocom777.hatenadiary.org

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