12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Microsoft Access Barcode Control は使わないほうが良い

Last updated at Posted at 2020-02-19

Microsoft Access Barcode Control とは

Microsoft Access(以降 Access)には、Microsoft Access Barcode Control というコントロールが含まれており、これを使用してバーコードを出力することができます。(Office 2013 以降の Access では、QRコードも出力することができるようになりました)

Office Professional 以上の場合、追加アプリのインストールなしにバーコード・QRコードを出力できるのが大きな魅力です。(Office Personal など Access がインストールされていない場合は、ランタイム版 Access をインストールすることで使用可能です)

しかし、後述する問題があるため、Microsoft Access Barcode Control は使用しないほうが無難です。

Microsoft Access Barcode Control を使わないほうが良い理由

  • サポートされていない

Microsoft Access Barcode Control は Access のレポート(帳票)出力に使用する場合のみサポート対象とされています。そのため、バーコードをフォーム上に表示したりExcelで使用するなどはサポート対象外となっています。
そのためか、Microsoft Access Barcode Control を張り付けた Excel ファイルを開こうとすると異常終了してしまうような不具合が発生することもあります。

  • バーコードの表示に問題が発生することがある

Microsoft Access Barcode Control は ActiveX コントロールで実装されていますが、これがクセモノで、ActiveX コントロール部品は Microsoft Access Barcode Control に限らず、画面上で表示サイズが変わるなどの不具合が頻繁に発生します。
実際、Microsoft Access Barcode Control を Excel などで使用した場合では、バーの幅が不規則に変わってしまい、読み取れないバーコードが表示されてしまうことがありました。

  • 作成できるQRコードに制限がある(QRコードの規格に沿っていない)

作成できるQRコードには制限があり、誤り訂正レベルは L,M,Q,H のいずれかで最大文字数は半角 255 文字の制限があります。漢字は入力文字列として指定できません。
モード識別子は0100(8ビットバイト)のみで、数字・英数字・漢字のモードは選択できません。
マスクパターンも適切なものが選択されるべきところが常に000 になっているようで、入力文字列のビットパターンによってはエラー率が上がるのではないかと思われます。

  • 時々間違ったQRコードを出力することがある

QRコードを生成するアルゴリズムにバグがあるようで、稀にビット誤りを起こしたQRコードを作成することがあります。(体感的にはランダムな文字列1000回で1回程度あるかないか)
例えば、入力値で渡された文字列の A (0x41) が Q (0x51) に文字化けしたQRコードが生成されるようなことが起きます。
マイクロソフトにはバグ報告はしていますが、いまだに修正されていないようです。

文字化けが起きた場合、入力文字列の後ろに空白を1文字追加すれば文字化けは起きなくなります。
静的なQRコードであればそれで問題はないのですが、VBA で毎回異なるQRコードを作成するような用途では文字化けしているかどうか判別できないと危険です。
当方でどうしても Microsoft Access Barcode Control を使う必要があった場合には、入力文字列にチェックサム文字列を追加することで誤りを検知できるようにしていました。

Excel (Office ファイル) でバーコード・QRコードを表示するには?

静的なバーコード・QRコードであれば、ネット上のバーコード作成サービスでバーコード画像を作成し、それをイメージで貼り付けるのがオススメです。
動的なバーコード・QRコードの場合は、以下の記事のように、VBA でバーコードを作成するのが一番良いかと思います。

EXCELのVBAだけでQRコード
https://qiita.com/santarou6/items/d623417ea8ba33756108

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?