CODE128を作成したい!!と思って色々調べてみたけど、いい方法が見当たらない…といったお悩みはありませんか?
CODE128はJANコードやCODE39と比較し作成が難しいです。エクセルで作成する場合VBAを使用するしか方法が無いのが現状。
そこで今回はCODE128をエクセルで作成する方法をご紹介します。
CODE128は、アスキーコード128文字(アルファベット大文字/小文字、記号、数字、制御コード)全てをバーコード化する事が可能で、漢字、カタカナ、ひらがな以外ならキーボードから打てる文字を全て表す事ができるため、コンピューターと相性が非常に良いバーコードだと言えます。
CODE128をエクセルで作成する方法がわかります。
CODE128はCODE39と違い、フォントで作成ができませんのでVBAを使用します。
エクセルでバーコードを作成できるCODE39についてはこちらから。
CODE128とは
Code128は、1981年にアメリカで開発されたバーコードシンボルです。
主に以下の2点の特徴があります。
①アスキーコード128文字を全てバーコードにできる
CODE128はアスキーコードのキャラクタ数である128文字(数字、アルファベット大文字/小文字、記号、制御コード)を表現できます。情報密度と信頼性も高いため、CODE39に変わって工業分野でも多く採用されています。
②バーコードを小さくできる
CODE128は記録密度が高く、バーコードの小型化が可能です。
またバーコードの長さを変更でき、データ数に応じてバーコードのサイズを調整可能です。CODE39のバーコードと比べても幅を狭く作成可能であり、限られたスペースにより多くの情報を表示できます。
他のバーコードでは作成不可能な小さなスペースに印刷することができるため、物流業界では多く利用されています。
CODE128作成用のVBAをご紹介
今回のVBAを実行すると選択をしているセルの何列目にCODE128バーコードを作成するかを指定できます。
例) 1列目に 123456789を入力しておく。
3列目を指定し実行すると、選択セルを基準に右へ3列目にバーコードを作成します。
CODE128用のVBA作成方法
それでは実際にVBAでのCODE128の作成手順をご紹介します。
1. 開発よりVisual Basicを選択
2. 挿入より標準モジュールを選択
3. 白いスペースに以下のコードを張り付け
以下のコードを使用してください。
Function IndexNumber(Target1, Target2)
Dim i As Integer
For i = 0 To UBound(Target1)
If Target1(i) = Target2 Then Exit For
Next
IndexNumber = i
End Function
Sub CODE128_B_数字なし()
Application.ScreenUpdating = False
Dim textcode, mynumber As Variant
Dim mycode As String
Dim c As Range
Dim i, a, q, x, y, m As Integer
Dim t As Double
Dim shbar, sh As Worksheet
textcode = Array(212222, 222122, 222221, 121223, 121322, 131222, 122213, 122312, 132212, _
221213, 221312, 231212, 112232, 122132, 122231, 113222, 123122, 123221, _
223211, 221132, 221231, 213212, 223112, 312131, 311222, 321122, 321221, _
312212, 322112, 322211, 212123, 212321, 232121, 111323, 131123, 131321, _
112313, 132113, 132311, 211313, 231113, 231311, 112133, 112331, 132131, _
113123, 113321, 133121, 313121, 211331, 231131, 213113, 213311, 213131, _
311123, 311321, 331121, 312113, 312311, 332111, 314111, 221411, 431111, _
111224, 111422, 121124, 121421, 141122, 141221, 112214, 112412, 122114, _
122411, 142112, 142211, 241211, 221114, 413111, 241112, 134111, 111242, _
121142, 121241, 114212, 124112, 124211, 411212, 421112, 421211, 212141, _
214121, 412121, 111143, 111341, 131141, 114113, 114311, 411113, 411311, _
113141, 114131, 311141, 411131)
mynumber = Array(” “, “!”, “”””, “#”, “$”, “%”, “&”, “‘”, “(“, “)”, “*”, “+”, “,”, “-“, “.”, “/”, “0”, “1” _
, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “:”, “;”, “<“, “=”, “>”, “?”, “@”, “A”, “B”, “C”, _
“D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, _
“W”, “X”, “Y”, “Z”, “[“, “\”, “]”, “^”, “_”, “`”, “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, _
“j”, “k”, “l”, “m”, “n”, “o”, “p”, “q”, “r”, “s”, “t”, “u”, “v”, “w”, “x”, “y”, “z”, “{“, “|”, _
“}”, “~”, “DEL”, “FNC 3”, “FNC 2”, “SHIFT”, “CODE C”, “FNC 4”, “CODE A”, “FNC 1”)
Set sh = ActiveSheet
If IMEStatus <> vbIMEModeOff Then
SendKeys “{kanji}”
End If
x = InputBox(“何列右に貼り付けますか?”)
Worksheets.Add
ActiveSheet.Name = “mysh”
Set shbar = Worksheets(“mysh”)
Cells.Interior.Color = 16777215
Cells.ColumnWidth = 0.08
Rows(“2:2”).RowHeight = 15
Rows(“3:3”).RowHeight = 8
Cells.Font.Size = 6
sh.Activate
For Each c In Selection
mycode = “9211214”
For i = 1 To Len(c)
mycode = mycode & textcode(IndexNumber(mynumber, StrConv(Mid(c, i, 1), vbNarrow)))
Next
t = 104
For a = 1 To Len(c)
t = t + a * IndexNumber(mynumber, StrConv(Mid(c, a, 1), vbNarrow))
Next
mycode = mycode & textcode(t Mod 103)
mycode = mycode & “23311129”
shbar.Activate
m = 1
For q = 1 To Len(mycode)
Select Case q Mod 2
Case 1
For y = 1 To CInt(Mid(mycode, q, 1))
m = m + 1
Next
Case 0
For y = 1 To CInt(Mid(mycode, q, 1))
Cells(2, m).Interior.Color = 0
m = m + 1
Next
End Select
Next
shbar.Range(Cells(2, 1), Cells(2, m)).CopyPicture Appearance:=xlScreen, Format:=xlPicture
sh.Activate
c.Offset(0, x).PasteSpecial
With Selection
.ShapeRange.LockAspectRatio = msoFalse
.Height = c.Height -4
.Width = c.Offset(0, x).Width -4
.Left = c.Offset(0, x).Left + (c.Offset(0, x).Width -.Width) / 2
.Top = c.Offset(0, x).Top + (c.Offset(0, x).Height -.Height) / 2
End With
shbar.Cells.Interior.Color = 16777215
shbar.Cells.UnMerge
Next c
Application.DisplayAlerts = False
shbar.Delete
Application.DisplayAlerts = True
End Sub
※当記事により発生した損害・損失に対しては一切の責任を負いかねますのであらかじめご了承下さい。
※引用元:CODE128(コードセットBの数字・アルファベット・記号のみ)をエクセルだけで作る方法 | 斜め上ニュース (nanameue-news.com)
※引用しておりますが、実施検証は行っておりますのでご安心ください。
2次元はQRコードのことであり、画像など容量の大きいデータも小面積で入れることができます。
2次元バーコード(QRコード)の読み取りが可能なバーコードリーダーは基本1次元は読み取り可能です。
2次元バーコードも使用する可能性があるかも!といった方には2次元対応のバーコードリーダーをおすすめします!
②接続方式は?
接続方式は、有線タイプと無線タイプの2種類があります。有線タイプは、USBやRS232Cタイプがあり、USBタイプはUSBポートさえあれば簡単に接続できるメリットがあります。
一方無線タイプは、Bluetoothで接続ができ、タブレットやスマホでも簡単にデータ出力ができます。
それぞれメリットデメリットがありますが、初めて購入する方には有線タイプをおすすめします。
一見便利そうなワイヤレスですが、充電やデータの安定性を考えると有線タイプのほうが適している場合が多いですよ。
接続方式 | 初心者へのおすすめ | メリット | デメリット |
---|---|---|---|
有線タイプ | ◎ | データが安定している。 | 自由に持ち運びができない |
無線タイプ | 取り回しが自由 | 電池切れの可能性がある |
③スキャナーの形状は?
スキャナーの形状は、ハンディタイプ・据え置きタイプ・小型タイプの3種類がありますが。シェアとしては、ハンディタイプと据え置きタイプが高いです。
初心者におすすめはハンディタイプです。 値段もお手頃で、簡単に使用できるのが特徴です。
接続方式 | おすすめな人 | メリット | デメリット |
---|---|---|---|
ハンディタイプ | 初めてバーコードリーダーを購入する方 | ・5,000円以下でも購入可能・設定が簡単 | ・値段が安いと読み取り性能が低い場合がある |
据え置きタイプ | 業務用におすすめ | ・ハンディタイプより高性能 | ・手にもって使用ができない |
小型タイプ | 業務用におすすめ | ・データ保存などユニークな機能がある | ・使用が限定的・充電が必要 |
④接続ケーブルを確認!(USB接続またはRS232C)
一般的にバーコードリーダーと端末を接続する方法として、USB接続かRS232C接続の2種類があります。 いざバーコードリーダーを購入してみたら想像していたケーブルではなかった!という悲しい結果にならないように注文する際はご注意くださいね。
購入前に接続方式を必ず確認しておきましょう!
オススメのバーコードリーダー
ここではおすすめのバーコードリーダーをご紹介します。
Tera ワイヤレスバーコードリーダ
様々なシーンで使用できる万能型
参考価格:5,180円
私が最もオススメするバーコードリーダーです。
ワイヤレス対応で、Bluetoothにより簡単接続が可能となっております。
また、スタンド付きで、ハンズフリーでスキャンができ効率UPを見込めます。
- ワイヤレスも使用可能で、汎用性が高いバーコードリーダーです
デメリットとしては、説明書が少し分かりづらい点です。付加コード設定などを行いたい方には操作が難しいかもしれません。
Tera ワイヤレスバーコードリーダの詳細は以下の記事をご覧ください。
バーコードリーダーはコスパが高い改善ツールなんです。
バーコードリーダーはパソコンに接続でき、簡単に使用ができます。
バーコードとの連携で業務効率化にも繋がりますので業務改善を行いたい場合にもオススメです。
\2022年最新版!!/
CODE128で改善の幅を広げよう
CODE128は作成方法が限定されているため難しく感じますが、実際に現場のバーコードには多く使用されています。 今回ご紹介したVBAを使用してCODE128を業務改善に活用してみましょう!
⇒ステータスの証明をこれ一枚で アメリカン・エキスプレスカードはこちらから