.NET特集
 N1.Web関連
 Q1.VS2005自作Visualizer
 R1.OpenCV

VB6特集
 S1.Net関連(95/98)
 S2.Net関連(NT)
 S3.コモンダイアログの拡張
 S4.MailSlot関連
 S5.RAS関連
 S6.セキュリティ関連
 S7.FAX制御(Win2000)
 S8.ADSIの利用
 T1.グラデーションバー
 T2.アイコンメニュー
 T3.バーコード(NW7)
 バーコード
VBは容易にアプリケーションを開発できるすばらしい開発ツールと思います。確かに画面設計などはとくに簡単です。 印刷を行うとなるとちょっと・・・これに加えて特殊な印刷(バーコード)を行いたい場合などはサードパーティ製品に頼らなければいけません。 しかし、今まで「Print」メソッドでゴリゴリ書いていたソースは利用したいと言う時にこの「バーコード支援クラス」を利用すれば、 簡単にバーコードを印刷できます。(あくまで単純なもの^^;)
 このクラスの目的
このクラスだけでバーコードを印刷する事は可能です。しかし本来の目的は「バーコード印刷ロジックの理解」を目的にしていますので、 利用される方ご自身でバーコード印刷ロジックを理解して使用していただければと思います。 ですから、このクラス自体APIを利用せず「Print」メソッドのみで実現しています。
 注意事項
本クラスは、先に述べたように「バーコード印刷ロジックの理解」を目的にしているので完成度の低いクラスになっています。^^; 特にサイズ単位の調整などは細かくしていませんので注意してください。サイズなどは規格が決められているので特に注意してください。 バーコード規格については、こちらをご覧ください。
 プロパティ一覧
プロパティ 説明 取得 設定
Target 出力対象オブジェクトを指定します。
Top 出力開始上端位置。
Left 出力開始左端位置。
Block バーコード 1ブロックラインサイズ。
Height バーコード 高さ。
Code 出力コード。
Check チェックデジット。
StartChr スタートキャラクタ。
StopChr ストップキャラクタ。
 メソッド一覧
メソッド 説明
PrintBar 対象オブジェクトにバーコードを出力します。
必ず Target プロパティを設定してから呼出して下さい。
 バーコードロジックの考え方・・・
バーコードとは、複数の棒(バー)でコードを表すのはお分かりと思います。 バーコードには色々な種類があり、ここでは「NW-7」について取り上げています(バーコードの中でも簡単な部類)。 NW-7は4本のバーと3本のスペースの合計7本で一つのキャラクタを構成しています (余談・・・NW-7の由来が7本の細・太線で構成されているのでそう呼ばれているらしい)。

■キャラクタの表し方
とりあえず一番重要となる、どのようにしてバーでキャラクタを表すかを説明します。 これさえ理解してしまえば他の種類のバーコード(JAN-8,JAN-13,CODE-39...)も同様の方法で実現する事ができます。

'----------------------------------------
' バーコードタイプキャラクタ配列初期設定
'----------------------------------------
'****************************************
'                  NW7
'****************************************
t_NW7_Char = "0123456789-$:/.+ABCD"
t_NW7_Pattern = Array("10101000111000", _
                      "10101110001000", _
                      "10100010111000", _
                      "11100010101000", _
                      "10111010001000", _
                      "11101010001000", _
                      "10001010111000", _
                      "10001011101000", _
                      "10001110101000", _
                      "11101000101000", _
                      "10100011101000", _
                      "10111000101000", _
                      "11101011101110", _
                      "11101110101110", _
                      "11101110111010", _
                      "10111011101110", _
                      "10111000100010", _
                      "10001000101110", _
                      "10100010001110", _
                      "10100011100010")
これがバーコードクラスで利用する変換データです。何の事やらさっぱり分からないと思いますので説明します。 t_NW7_PatternはVariant型で、Array関数をして配列を作成しています。この配列の要素番号と、 t_NW7_Char内のキャラクタの位置が対応しています。 すなわち、キャラクタ1 = 10101110001000 になります。この0と1は何を示しているかは、以下の対応表を見てください。

キャラクタ バーコードキャラクタ
0
                           
1
                           
2
                           
3
                           
4
                           
5
                           
6
                           
7
                           
8
                           
9
                           
-
                           
$
                           
:
                           
/
                           
.
                           
+
                           
A
                           
B
                           
C
                           
D
                           

この対応表のスペースが0、■が1で表されています。ですからバーコードを表示する場合には、 対応するキャラクタ位置のt_NW7_Patternの0,1を区別して適切なサイズで線を「Print」メソッドなどを利用して出力すればいいわけです。 この対応表は決められた物なのでこのようなデータ配列を作成してしまえばバーコードを表示する事はそんなに難しいものではありません。

■NW7での注意点(特徴)
NW7でのデータキャラクタ部分を識別する為に、最初と最後にスタートキャラクタ、ストップキャラクタを指定しなければなりません。 利用できるキャラクタは、A,B,C,Dです。クラスではStartChr,StopChrプロパティを設定する事により指定できます。 また、バーコードの信頼性を上げるために、チェックキャラクタ(チェックデジット)を利用する事ができますが、基本的に NW7では必要ありません。 もしチェックキャラクタを使用する場合は、CheckプロパティをTrueにする事によりチェックキャラクタを使用できます。(チェック方法=モジュラス16)

 サンプル
サンプルダウンロード(6KB)

Copyright © 2005 tadahiro higuchi. All Rights Reserved.