Code 128 Code Set B

今日のお仕事、備忘録。数字だけのデータをCode 128 Code Set B モジュラス103のチェックディジット付きでバーコード化する。画像利用ではなく、バーコードフォントを使用する必要がある。

VALUE CHARACTER VALUE CHARACTER VALUE CHARACTER
0   36 D 72 h
1 ! 37 E 73 i
2 " 38 F 74 j
3 # 39 G 75 k
4 $ 40 H 76 l
5 % 41 I 77 m
6 & 42 J 78 n
7 ' 43 K 79 o
8 ( 44 L 80 p
9 ) 45 M 81 q
10 * 46 N 82 r
11 + 47 O 83 s
12 , 48 P 84 t
13 - 49 Q 85 u
14 . 50 R 86 v
15 / 51 S 87 w
16 0 52 T 88 x
17 1 53 U 89 y
18 2 54 V 90 z
19 3 55 W 91 {
20 4 56 X 92 ¦
21 5 57 Y 93 }
22 6 58 Z 94 ~
23 7 59 [ 95 Ã
24 8 60 \ 96 Ä
25 9 61 ] 97 Å
26 : 62 ^ 98 Æ
27 ; 63 _ 99 Ç
28 < 64 ` 100 È
29 = 65 a 101 É
30 > 66 b 102 Ê
31 ? 67 c 103 Ë
32 @ 68 d 104 Ì
33 A 69 e 105 Í
34 B 70 f   Î
35 C 71 g
8桁の数字(書式 "00000000")をバーコードにする場合、エクセルでは
="Ì"&$A1&VLOOKUP(MOD(INT(MID($A1,1,1))*1+INT(MID($A1,2,1))*2+INT(MID($A1,3,1))*3+INT(MID($A1,4,1))*4+INT(MID($A1,5,1))*5+INT(MID($A1,6,1))*6+INT(MID($A1,7,1))*7+INT(MID($A1,8,1))*8+680,103),CODE128!$A:$B,2,FALSE)&"Î"
のように書き、True TypeのCode 128フォント(Start Codeを含め、Code 128のセット全て表現できるもの)で印刷する。
$A1にバーコード化したい数値(文字列で8桁)、CODE128!$A:$Bでキャラクタ表を指定。
関数でできるものは関数で書くのが楽。
ちなみに上の式は
="Ì"&$A1&VLOOKUP(MOD(104+INT(MID($A1,1,1)+16)*1+INT(MID($A1,2,1)+16)*2+INT(MID($A1,3,1)+16)*3+INT(MID($A1,4,1)+16)*4+INT(MID($A1,5,1)+16)*5+INT(MID($A1,6,1)+16)*6+INT(MID($A1,7,1)+16)*7+INT(MID($A1,8,1)+16)*8,103),CODE128!$A:$B,2,FALSE)&"Î"
と同じです。VBで書くより簡単だし理解しやすいでしょ?(強弁)