#566 | 文字列がCODE39のバーコードで使えるかチェックする | VBA | |
Accessのレポートでは、バーコードコントロールを使うことで、いくつかの形式のバーコードを印刷することができます。その中のひとつの形式が「CODE39」です。 ただしCODE39は、半角の数字、半角の大文字アルファベット、いくつかの記号と、使用可能な文字が限られています。そこで、引数で指定した文字列がCODE39として使用可能かどうかを判別するFunctionプロシージャのサンプルを紹介します。 以下のプロシージャでは、使用不可な文字がひとつでも含まれていたら「その文字列はCODE39には使えない」ということで「False」を返します。すべて使用可能であれば「True」を返します。 public Function IsCode39Available(strData As String) As Boolean 'CODE39で使用可能な文字の羅列を定数で宣言 Const cstrAvailableChar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%" Dim iintLoop As Integer '使用可能な文字か1文字ずつチェックするループ For iintLoop = 1 To Len(strData) If InStr(1, cstrAvailableChar, Mid$(strData, iintLoop, 1), vbBinaryCompare) = 0 Then '使用不可の文字がひとつでも含まれていたらFalseを返す IsCode39Available = False Exit Function End If Next iintLoop '使用不可の文字がひとつも含まれていなければTrueを返す IsCode39Available = True End Function ※InStr関数における文字の比較においては、引数に「vbBinaryCompare」を指定しないと、半角全角の違いがチェックされません。たとえば「A(全角)」も「A(半角)」も同じであると判断されてしまいますので、今回の場合はこの引数は必須となります。 実行例: 2つめの例では、「2」が全角となっているので返り値はFalseとなります。 3つめの例では、「_」はCODE39で使えないので返り値はFalseとなります。 |
|||
|
Copyright © T'sWare All rights reserved |