今日は、Micosoft Accessに付属する「Microsoft Barcode Control」を使って、プロデルでQRコードやバーコードを表示させてみたいと思います。

最新版プロデル 1.6.939以降では、「ActiveX部品」種類を継承することで、ActiveXコントロール(COMオブジェクト)をウィンドウ上に貼り付けることができるようになりました。
「Microsoft Barcode Control」は、ActiveXコントロールのひとつであり、少し工夫することでプロデル上でも部品として利用できます。
Microsoft Barcode Controlの利用
「Microsoft Barcode Control」は、複数の種類のバーコードを生成できる部品で、主にAccessやExcelで利用されています。この部品では、よく使われるJAN13形式やQRコードなどバーコードに気軽に作ることができます。(
※「QRコード」は株式会社デンソーウェーブの登録商標です
プロデルの今回の例では、ActiveXで提供されているBarcode Controlを拝借してバーコードを作ってみようと思います。
なおMicrosoftのドキュメントでは、Microsoft Barcode ControlがAccess上で利用することのみを想定していると説明されています。そのため、あくまでもAccessがインストールされた自分のPCで利用する場合に限って使って下さい。
https://blogs.technet.microsoft.com/officesupportjp/2017/07/05/barcodecontrolforaccess/
またBarcode Controlを単独で配布することもできないため、残念ながらこの方法を使ってバーコードを利用したソフトウェアの配布もできません。配布するアプリにバーコードを利用したい場合は、別途.NET向けのバーコードライブラリを検討して下さい。
(19/7/7追記) Accessランタイムでも利用可能とのことです
Accessがインストールされていない環境でも、無償提供されているAccessランタイムをインストールすることで、Barcode Controlがインストールできるようです。田中様、情報提供ありがとうございます。
準備
Microsoft Barcode Controlは、Microsoft Accessに含まれています。
AccessがインストールされていないPCではバーコードを作れません。
Microsoft Accessをインストール済みの場合でも、レジストリにActiveXが登録されていないために、エラーとなり利用できない場合があります。その時は、プロデルデザイナに次のプログラムを貼り付けて、保存した上で実行して下さい。このプログラムによってレジストリに登録されます。
※管理者実行
「regsvr32 "C:\Program Files (x86)\Microsoft Office\root\Office16\MSBCODE9.OCX"」を起動する
※パスは、Windows(64ビット版)でOffice2016(32ビット版)を利用した場合です。PCによって異なる場合があります。VBAの参照設定でライブラリから「BARCODE」を選択した時に表示されるパスを指定するか、エクスプローラでMSBCODE9.OCXを検索してその場所を指定してください
※ActiveXを利用する場合には、起動しているプログラムのビット数とコントロールのビット数が一致する必要があります。プロデルデザイナは、常に32ビット版として起動するため、Windowsが64ビット版の場合でも、32ビット版のOffice2016をインストールする必要があります
「ActiveX部品」種類の利用
「ActiveX部品」種類は、ActiveXコントロールを受け持つプロデルのラッパー種類です。
「COM型」種類では、部品を作ることができませんが、プロデル 1.6.939以降「ActiveX部品」を使うことでウィンドウ部品を作ることができるようになりました。
Barcode Controlは、設定項目が英単語であるため、プロデル向けに日本語名に置き換えた「バーコード部品」種類を定義しておきましょう。バーコード部品は、次のようなプログラムで定義しました。この「バーコード部品」は、ウィンドウ上に貼り付けられます。
「本体」は、ActiveXコントロールの本体を表します。VBAなどで説明されているメソッドやプロパティは、「本体」を通じて設定できます。なおプロデルでの制約上、イベントプロシージャは使用できません。メソッドおよびプロパティのみが利用できます。
バーコード部品とは
ActiveX部品を継承する
はじめ()の手順=(「BARCODE.BarCodeCtrl.1」)
終わり
スタイルという属性
取得する手順
本体のStyleを返す
終わり
設定する手順
本体のStyleは、設定値
終わり
終わり
内容という属性
取得する手順
本体のValueを返す
終わり
設定する手順
本体のValueは、設定値
終わり
終わり
終わり
バーコードを表示する
定義したバーコード部品は、ウィンドウの設計で対応していないので、部品を作る文を「はじめの手順」に書いておきます。
JAN13形式のバーコードを表示するには、メイン画面の「開いた時の手順」の中で、スタイルを2に設定します。また内容には、番号を指定します。
メイン画面を表示する
待機する
メイン画面とは
ウィンドウを継承する
はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
バーコードというバーコード部品を作る
その大きさを{100,100}に変える
終わり
初期化する手順
ーー自動生成された手順です。ここにプログラムを書き加えても消える場合があります
この設計スケール比率を{144,144}に変える
この内容を「メイン画面」に変える
初期化開始する
初期化終了する
終わり
開いた時の手順
バーコードのスタイルは、2
バーコードの内容は、4902777232577
終わり
終わり
QRコードを表示する
QRコードを表示するには、スタイルを11に設定します。内容には、半角英数字を指定します。URLやメールアドレスなどの情報に限り指定できます。この部品では、日本語は指定できないようです。
バーコードのスタイルは、11
バーコードの内容は、「https://rdr.utopiat.net/」
読み取ってみる
スマートフォンをお持ちの場合は、バーコードリーダアプリでカメラからバーコードを読み取れます。もちろん市販のハンディタイプのリーダーでも読み取れます。
まとめ
QRコードなどのバーコードは、画面や印刷で気軽に情報をやりとりできます。またバーコードに対応するいろいろなアプリと組み合わせた利用方法を考えられるかと思います。AccessやExcelのVBAを使うような感覚でプロデルで作業管理アプリを作ってみるのはいかがでしょうか。