CODE128バーコードを無料作成!読取エラーを防ぐエクセル実践手順
物流管理から社内備品ラベル、製造ラインの工程管理まで、あらゆるビジネスシーンで幅広く活用されているバーコード規格が「CODE128」です。アスキーコード全128文字を自在にエンコードできる高い汎用性と、データ密度の高さが支持を集める一方で、業務現場では「エクセルで作ったバーコードがリーダーで一切読み取れない」というトラブルが後を絶ちません。
専用のバーコードフォントをインストールして文字列に適用しただけでは、スキャナーはバーコードとして認識しません。CODE128には厳密なデータ構造、専用のチェックデジット計算、そして運用状況に応じたコードセットの使い分けが必須です。本稿では、現場で頻発する読取エラーの根本原因を暴くとともに、エクセルを用いた完全無料の作成フローから最新ツールの選び方まで、実務に直結するノウハウを網羅的に解説します。
📌 【この記事の重要ポイントまとめ】
- 要点1:CODE128が読み取れない最大要因は「スタート/ストップ文字の未付加」と「モジュロ103チェックデジットの計算漏れ」にある。
- 要点2:エクセルで無料出力する際は、専用フォントの導入に加えてVBAマクロ等によるデータ変換処理が必須となる。
- 要点3:数字のみを扱う場合はコードセットCを活用することで、バーコードの横幅を約半分に圧縮して省スペース化が可能になる。
【規格解説】CODE128規格と構成の詳細まとめ|高密度バーコードの基本
CODE128は、1981年に米Computer Identics社によって開発された高密度バーコードシンボルです。数字、英字(大文字・小文字)、記号に加え、制御コード(CR, LF, TABなど)を含むASCIIコード全128文字をすべて表現できる特徴を持っています。同じ文字数を表現する場合、Code 39などの従来規格と比較して横幅を格段に短く抑えられるため、省スペースが求められるラベル印刷に適しています。
シンボルの基本構造は、スキャナーが読み取り方向や規格を識別するための「クワイエットゾーン(左右の余白)」「スタート文字」「データキャラクタ」「チェックデジット」「ストップ文字」で構成されています。それぞれのキャラクタは11モジュール(ストップ文字のみ13モジュール)で構成され、3本のバーと3本のスペース(黒バー3本、白スペース3本)の組み合わせで1つの文字を表現します。
【仕組み】CODE128スタート文字ストップ文字の仕組みとフレーム構造
CODE128が正しくスキャンされるためには、バーコードの両端に規定の制御文字が正確に配置されていなければなりません。これがCODE128スタート文字ストップ文字の仕組みです。スタート文字は後述する「コードセットA・B・C」のどれで読み取りを開始するかをスキャナーに指示する役割を持ち、ストップ文字はデータの終端をスキャナーに伝達します。
加えて見落とされがちなのが、バーコードの左右に設けるべき「クワイエットゾーン(マージン)」です。CODE128の規格上、最小でもナローバー幅(最小エレメント幅)の10倍、または2.54mm以上のマージンが左右両側に確保されていない場合、スキャナーはバーコードの開始・終了位置を特定できず、読み取りエラーを起こします。
【コードセット】CODE128コードセットA・B・Cの使い分けとデータ圧縮術
CODE128の大きな強みは、扱うデータの種類に応じて3種類のテーブル(コードセット)を切り替えられる点にあります。最適なセットを選択することで、印字領域の節約とスキャン精度の向上が実現します。
CODE128コードセットA・B・Cの使い分けの基本は以下の通りです。
- コードセットA:数字、英大文字、各種記号、および制御コード(NUL、LF、CRなど)を収録。制御信号を含むFA機器の制御ラベルなどに適しています。
- コードセットB:数字、英大文字、英小文字、各種記号を収録。一般的な英数混在の管理番号やシリアルコードに最も広く用いられます。
- コードセットC:00〜99の「2桁の数字」を1つのキャラクタ(11モジュール)で表現。数字のみで構成されるデータを記録する場合、コードセットBに比べてバーコードの長さを約50%短縮できます。
データ途中でコードセットを切り替える「シフト文字(Shift)」や「コード切り替え文字(Code A/B/C)」を挟むことで、英数字と連続する数字をひとつのバーコード内で効率的に混在させることも可能です。
【原因究明】CODE128読み取れない理由と対処法|現場で起きる5大トラブル
実務現場で「画面上や紙面にはバーコードが見えているのに、ハンディターミナルで読めない」という現象が多発します。CODE128読み取れない理由と対処法を整理すると、原因の大半は次の5点に集約されます。
1. フォントだけを変えて元の文字列を表示している
エクセルでセルに「12345」と打ち込み、フォントをCODE128フォントに変更しただけでは、スタート文字やチェックデジットが含まれていないため絶対に読めません。専用の計算ロジックを通したエンコード文字列へ変換する必要があります。
2. チェックデジットの計算ミス・未挿入
CODE128はモジュロ103によるチェックデジットが規格上必須です。手作業や不適切な数式で誤った値が入っていると、スキャナー側で整合性チェックが弾かれます。
3. クワイエットゾーン(左右の余白)の不足
セルの幅を狭めすぎたり、ラベル枠いっぱいにバーコードを配置したりすると、余白が足りずにスキャナーが認識できません。必ず左右に十分な空白を設けてください。
4. 印刷時の線潰れ・解像度不足
家庭用インクジェットプリンターで普通紙に印刷した場合、インクのにじみによってバーの太さ比率が崩れ、読み取りに失敗します。サーマルプリンターやレーザープリンターを使用し、適切な解像度(203dpi〜300dpi以上)で出力するのが鉄則です。
5. スキャナー側の読み取り設定(プロファイル)が無効
リーダー側でCODE128の読み取りが無効化されていたり、桁数制限がかかっていたりするケースもあります。機器の設定マニュアルを確認し、CODE128の全桁読み取りを許可してください。
【計算ロジック】CODE128チェックデジット計算方法(モジュロ103)を完全理解
CODE128の信頼性を担保しているのが、強力なエラー検出を行う「モジュロ103」アルゴリズムです。CODE128チェックデジット計算方法は以下の手順で算出されます。
計算式:
(スタートキャラクタのコード値 + Σ(各データのコード値 × データ位置番号 1, 2, 3...)) mod 103
例えば、コードセットBで「ABC」という3文字をエンコードする場合:
- スタート文字(Start B)のコード値:104
- 1文字目「A」(コード値 33)× 位置 1 = 33
- 2文字目「B」(コード値 34)× 位置 2 = 68
- 3文字目「C」(コード値 35)× 位置 3 = 105
- 合計値 = 104 + 33 + 68 + 105 = 310
- 310 ÷ 103 = 3 あまり 1
余りである「1」に対応するキャラクタ(コード値1の文字)がチェックデジットとなり、データの末尾(ストップ文字の直前)に挿入されます。
【実践ガイド】CODE128エクセル作成手順とバーコードフォント導入
追加コストをかけずにエクセルバーコード出力のやり方を確立したい場合、オープンソースやフリーのバーコードフォント(例: Libre Barcode 128など)とVBAを組み合わせる手法が定番です。具体的なCODE128エクセル作成手順をステップ順に解説します。
ステップ1:CODE128バーコードフォント導入
信頼できる配布元(Google FontsのLibre Barcode 128や無料のTTFフォント配布サイト)からCODE128対応フォントをダウンロードし、WindowsまたはMacのOSへインストールします。エクセルを再起動すると、フォント一覧に該当フォントが追加されます。
ステップ2:VBAマクロにエンコード関数を登録
エクセルで「Alt + F11」キーを押してVBE(Visual Basic Editor)を開き、標準モジュールを挿入します。引数として渡された文字列に対し、スタート文字付加、モジュロ103の重み付け計算、チェックデジット付加、ストップ文字付加を行い、フォントに対応したキャラクタコード列を返すVBA関数(`EncodeCODE128`など)を記述します。
ステップ3:エクセル上で関数を呼び出してフォント適用
セルA1に元データ(例: `SKU-98765`)を入力し、バーコードを表示させたいセルB1に `=EncodeCODE128(A1)` と入力します。変換された難解な文字列が表示されたら、セルB1のフォントをインストールした「CODE128フォント」に指定し、適切なフォントサイズに拡大します。これでスキャナーで読み取れる正式なバーコードが完成します。
【徹底比較】2026年最新バーコード作成ツール比較|無料オンラインから専用ソフトまで
手軽に単発作成したいのか、業務システムとして大量自動生成したいのかによって、最適な作成ツールは異なります。2026年最新バーコード作成ツール比較として、主要な選択肢の特徴を整理しました。
| カテゴリ | 代表的なツール・手段 | メリット | デメリット / 注意点 |
|---|---|---|---|
| バーコード作成オンライン無料 | TEC-IT バーコードジェネレーター、各種Web生成サイト | インストール不要、PNG/SVGで即時高解像度ダウンロード可能 | 大量の一括生成には不向き、機密データの入力にはセキュリティ配慮が必要 |
| エクセル+無料フォント | Excel(VBAマクロ)+ Libre Barcode 128 | 追加費用ゼロ、台帳データから一括でラベル面付け印刷が可能 | フォント導入とマクロ設定の手間がかかり、保守スキルが必要 |
| バーコード作成無料ツール(デスクトップ) | Zint Barcode Studio、QRコード&バーコード作成フリーソフト | 細かなマージンや解像度調整が可能、ベクター形式(EPS/SVG)対応 | PCごとのソフト導入が必要、操作習得に若干の慣れを要する |
| 業務用ラベル印刷専用ソフト | BarTender、Labelstar Pro、各プリンター純正ソフト | プリンター最適化、データベース連携、極めて高い印字品質 | ライセンス導入コストが発生する |
一時的な単体ラベル作成であればブラウザで完結するバーコード作成無料ツールやオンラインサービスが便利ですが、日常業務での連続発行にはエクセル連携マクロや専用ソフトウェアの導入が安定運用への近道です。
【混同注意】CODE128とGS1-128の違い|物流標準フォーマットの識別基準
物流業界や医療資材管理でよく耳にする「GS1-128」は、CODE128と物理的なバーコード構造(バーとスペースの寸法比率やモジュロ103の計算規則)は全く同一です。しかし、運用のルールにおいてCODE128とGS1-128の違いは明確に存在します。
決定的な違いは「データの先頭にFNC1(ファンクション1)キャラクタが含まれているかどうか」、そして「アプリケーション識別子(AI)と呼ばれる国際標準フォーマットに従っているかどうか」です。
通常のCODE128は企業が社内で自由に番号体系を決めて印字できますが、GS1-128は「(01)商品コード」「(10)ロット番号」「(17)有効期限」といったGS1標準の識別子が厳密に定義されています。スキャナーは先頭のFNC1を検出することで「これは国際標準のGS1-128データである」と判別し、各データを正しく切り分けます。社内利用にとどまらず取引先とのEDI連携や物流出荷伝票に用いる場合は、単なるCODE128ではなくGS1-128規格に適合しているかを必ず確認してください。
【バー コード 作成 code128】に関するよくある質問(FAQ)
Q1:エクセルの標準機能だけでCODE128を画像として出力することはできますか?
A1:エクセルの「Microsoft BarCode Control」(ActiveXコントロール)を利用すれば画像オブジェクトとして生成可能ですが、Officeのバージョンやビット数(32bit/64bit)の差異によって動作が不安定になりやすい難点があります。安定性を重視する場合は、フォント+VBA方式か、外部生成した画像の一括挿入をおすすめします。
Q2:数字だけのデータを最小の幅でバーコード化するにはどうすればいいですか?
A2:スタート文字に「Start C」を指定し、コードセットC(数字2桁を1文字化)でエンコードしてください。桁数が奇数の場合は、先頭に「0」を補完して偶数桁にするか、最後の1文字の手前でコードセットBに切り替える処理を行うことで、最短幅での印字が可能です。
Q3:スマホのカメラや市販のリーダーでCODE128が読み取れない場合の最短チェック項目は?
A3:まず「左右の余白(クワイエットゾーン)が黒枠や文字で潰れていないか」を確認し、次に「印刷サイズが小さすぎてバーが潰れていないか」をチェックしてください。画面表示のバーコードを読み取る場合は、液晶の反射を避けてリーダーの角度を少し傾けると認識率が上がります。
まとめ:適切なコードセットと計算処理で現場の読取エラーをゼロへ
CODE128は、高い情報密度と自由度の高さを兼ね備えた優れたバーコード規格です。しかしその高度さゆえに、スタート/ストップ文字の付加やモジュロ103チェックデジットの計算を正しく行わなければ、ただの「読めない飾り模様」になってしまいます。
エクセルを活用した自作運用を行う際は、フォントを当てる前段階のデータ変換処理を確実に構築し、十分なクワイエットゾーンの確保と印刷解像度の維持を徹底してください。正しい仕様理解と環境構築を行うことで、読取トラブルのないスムーズなバーコード管理体制が実現します。 (出典: バー コード 作成 code128(Yahoo!ニュース))