このような感じで、入力された13桁の数字から、JAN/EANのバーコードを生成するコンポーネントを作成しました。
ダウンロードは以下のコミュニティサンプルからどうぞ。
[Update 2021/8/6]
- CODE-39への対応を追加しました。
- チェックデジットの自動計算を追加しました。
作りかたのポイント
JAN/EANのバーコードは基本的には先頭1桁を除いた12桁の数字を、対応表に従って7本の黒いバーと何もない部分にマッピングしたものです。
例えば1という数字の場合には、
左の6桁にあるか右の6桁にあるかの2通りであらわされます。今回のコンポーネントでも、このマッピングを使ってギャラリー上で黒い四角を表示するかしないかを制御しています。
実際には、1桁目の数字によって左の6桁をどうするかーというルールがありますが、難しい部分は以下の記事を参考にしてください。
下図はギャラリーのItemsに設定した一部ですが、With関数を使ってテーブルをマッピング用のテーブルを埋め込んでいます。
使い方
今回は Component libraryとして作成しています。 msappをダウンロードしてそれぞれの環境で開くとComponent libraryに保存されます。
コンポーネントの入力は "InputCode" と "AutoCheckDigit" です。InputCode に数字 (CODE-39であれば許可された文字) をいれてください。
AutoCheckDigitを有効にすると、JANの場合には自動計算された13桁目が付与/置き換えされます。 CODE-39の場合には自動計算の結果が末尾に追加されます。
おわり
原理を理解すれば意外と簡単なバーコードの実装でした!
チェックデジットの追加で少しゴチャつきましたが、基本はシンプルですね。