CODE128バーコード作成の罠|なぜ読めない?エクセル完全攻略法

目次
CODE128バーコード作成の罠|なぜ読めない?エクセル完全攻略法
CODE128バーコード作成の罠|なぜ読めない?エクセル完全攻略法
@ creator • Click to Play Video Inline
🎵 CODE128バーコード作成の罠|なぜ読めない?エクセル完全攻略法

物流倉庫や製造現場、オフィスの資産管理に至るまで、サプライチェーンの効率化が叫ばれる現場で日夜繰り返されるトラブルがあります。業務効率化を狙ってエクセル上でバーコードを作成し、いざ意気揚々とハンディスキャナーをかざした瞬間、ピッと鳴るはずの確認音が響かず、不気味な静寂に包まれるという光景です。「フォントをインストールして文字に割り当てただけなのに、なぜ全くスキャナーが反応しないのか」と頭を抱える担当者は後を絶ちません。

実は、数ある一次元シンボルの中でも抜群のデータ密度と表現力を誇る「CODE128」には、初心者や現場の担当者が必ずと言っていいほど踏み抜く構造的な落とし穴が存在します。手軽に扱えるCODE39と同じ感覚で手を出せば、確実に読み取り不能の印刷物を大量生産することになります。本稿では、流通システムや自動認識技術の規格仕様に基づき、スキャナー認識不良の根本原因からエクセルでの確実な出力ノウハウ、ツールの安全性までを徹底解説します。

📌 【この記事の重要ポイントまとめ】
  • 要点1:エクセルでCODE128のフォントを適用しても読めない最大の原因は、必須である「スタート/ストップコード」の付与と「モジュロ103チェックデジット」の計算処理が抜けているため。
  • 要点2:CODE39のように文字列の前後にアスタリスクを付けるだけでは動作せず、専用の計算ロジック(VBAや専用関数)による変換テキストの生成が不可欠。
  • 要点3:印字かすれや左右の余白(クワイエットゾーン)不足といった物理要因もスキャン失敗の主因であり、自作運用の費用対効果を見極めたツール選定が成否を分ける。

【現場で頻発】なぜエクセルで作ったCODE128はスキャナーで読み取れないのか?

ネット上の情報を見様見真似で試し、無償のバーコードフォントをエクセルに適用したユーザーが直面する「読み取りエラー」。このトラブルの根底には、CODE128という規格特有の厳密なアルゴリズムがあります。

倉庫管理システム(WMS)の立ち上げ現場を取材した際、ある物流ベンダーのSEは「『フォントを変えたのにバーコードリーダーが読まない、初期不良ではないか』というクレームの9割以上は、チェックデジットを計算せずに生の数字やアルファベットをそのままフォント化していることが原因」だと苦笑交じりに証言しました。

日本産業規格(JIS X 0504)および国際標準化機構(ISO/IEC 15417)で規定されている通り、CODE128のシンボル構造は以下の要素で成り立っています。

  • スタートコード:キャラクタセット(後述のコードA/B/C)を識別する開始記号
  • データキャラクタ:表現したい文字・数値の並び
  • チェックデジット(検査数字):データの誤読を防ぐためのMod-103(モジュロ103)計算値
  • ストップコード:シンボルの終了を示す固定パターン

つまり、単にセルに入力した「123456」という文字列にフォントを適用しても、スキャナーから見れば「開始の合図も終わりの合図もなく、検証用の計算も合致しない無効な線の集まり」に過ぎません。これが、画面上では綺麗なバーコードに見えているにもかかわらず、バーコードCODE128読み取れない理由の正体です。さらに、算出されたチェックデジットや制御コードは通常のキーボードから入力できないASCII特殊文字に割り当てられているため、専用の前処理プログラムを通さない限り、正当なバーコードは出力できない仕組みになっています。

当時のメディア報道・掲載写真
【検証資料 1】当時のメディア報道・掲載写真(出典:storage.qr.c-cloud.co.jp)

規格の基礎知識|CODE128桁数とキャラクタセット仕様&CODE39との違い

現場への導入にあたって正確に理解しておかなければならないのが、CODE128桁数とキャラクタセット仕様、そして先行規格であるCODE39との違いです。従来のCODE39は、数字、大文字英字、一部の記号(計43文字)しか扱えず、前後をアスタリスク()で挟むだけで成立する極めて単純な仕様でした。これに対し、CODE128はアスキーコード(ASCII)全128文字を余すところなく表現できます。

CODE128の内部には3つのキャラクタセット(コードA、コードB、コードC)が用意されており、これらを動的に切り替えることで高いデータ圧縮率を実現しています。

  • コードA:大文字アルファベット、数字、制御文字(CR、LFなど)を表現。
  • コードB:大文字・小文字アルファベット、数字、通常の記号を表現(標準的)。
  • コードC:「00」から「99」までの連続する数字2桁を1文字分のバーコード幅で表現。数字のみのデータであれば、CODE39に比べて約半分のスペースに凝縮可能。

また、流通業界で標準化されている「GS1-128」との混同も目立ちます。CODE128とGS1-128の違いまとめとして押さえるべきは、GS1-128はCODE128の物理シンボル規格をベースにしつつ、先頭に「FNC1(ファンクション1)」という識別コードを挿入し、賞味期限やロット番号といったアプリケーション識別子(AI)を付与する共通ルールを定めた応用規格であるという点です。物理的なバーの描画ルール自体はCODE128と共通ですが、データの格納作法が異なります。

項目CODE128CODE39編集部の見解・実務評価
表現可能文字ASCII全128文字(英大小、数字、記号、制御文字)半角数字、英大文字、記号7種(全43文字)小文字や詳細記号を扱う現代システムならCODE128一択
データ密度・印字幅極めて高い(コードC使用で数字2桁を1文字化)低い(文字数が増えると横長になりラベルに収まらない)限られたラベル面積で10桁以上印字するならCODE128が有利
チェックデジットモジュロ103が規格上必須モジュロ43(任意付与・なしでも規格成立)CODE128は計算プログラムの実装が絶対条件となる点が参入障壁
作成難易度(エクセル)高(VBAや専用ロジックによる文字変換が必要)低(文字列の前後に「」を結合してフォント指定するだけ)運用工数と安全性のトレードオフを見極める必要あり

【実践】CODE128エクセル作成手順とVBAマクロによる自動計算

エクセル単体で外部の有料アドインを使わずに作成する場合、実務で標準的に使われる手法が「オープンソースの専用フォント」と「VBAマクロによる計算関数」の組み合わせです。具体的なCODE128エクセル作成手順をステップ順に見ていきましょう。

まず前提として、CODE128フォントダウンロードを行います。世界的に広く利用されているのが、Google Fontsなどでも提供されているオープンソースフォント「Libre Barcode 128」や、各種開発者コミュニティで配布されている「Code 128 Font(Grand zebu氏の公開スクリプト向けフォント等)」です。OSのフォントフォルダにインストールしておくことで、エクセルのフォント一覧から選択できるようになります。

次に、キモとなるバーコードチェックデジット計算方法と、CODE128スタートコードとストップコードを自動付加するロジックをVBAで記述します。モジュロ103の計算アルゴリズムは、以下の数式に基づいています。

計算値 = (スタートコードのキャラクタ値 + Σ(各文字のキャラクタ値 × 桁位置ウェイト)) Mod 103

実務で活用できるエクセルVBAバーコード作成の関数コード例(コードB対応の標準的ロジック)は以下の通りです。

 Public Function EncodeCode128B(ByVal SourceText As String) As String Dim i As Long, charVal As Long, checkSum As Long Dim checkCharVal As Long, encoded As String If Len(SourceText) = 0 Then Exit Function ' スタートコードBのキャラクタ値は104 checkSum = 104 For i = 1 To Len(SourceText) charVal = Asc(Mid(SourceText, i, 1)) - 32 checkSum = checkSum + (charVal * i) Next i ' モジュロ103による剰余算出 checkCharVal = checkSum Mod 103 ' 特殊フォント(Grand zebu仕様等)のマッピングに合わせて文字化 ' ※使用するフォントのエンコード仕様に準拠した文字変換処理を実行 EncodeCode128B = Chr(204) & SourceText & Chr(checkCharVal + IIf(checkCharVal < 95, 32, 105)) & Chr(206) End Function 

このユーザー定義関数をVBAエディタに配置すれば、シート上のセルで =EncodeCode128B(A2) と呼び出すだけで、スタートコード、データ、チェックデジット、ストップコードが統合された変換文字列が出力されます。そのセルに対して対応するバーコードフォントを指定すれば、スキャナーで一発読み取りが可能な正しいバーコードが完成します。

活動歴および当時の関連ビジュアル記録
【検証資料 2】活動歴および当時の関連ビジュアル記録(出典:takablo-y.com)

印刷かすれやスキャナー認識不良の物理的要因とマージンの落とし穴

計算ロジックが正しく組み込まれていても、なお読み取れないケースがあります。その際に疑うべきはソフトウェアではなく、物理的な印刷条件と光学スキャンの相性です。

バーコード印刷かすれスキャナー認識不良の原因として、現場で最も見落とされがちなのが「クワイエットゾーン(左右の余白マージン)」の欠落です。バーコード規格では、シンボルの開始線と終了線の両外側に、細バー幅の最低10倍以上(あるいは2.54mm以上)の完全な空白エリアを確保することが義務付けられています。エクセルのセル幅をバーコードギリギリに縮めたり、セルの罫線がバーの直前に引かれていたりすると、スキャナーはどこからシンボルが始まったのかを判別できず、読み取りエラーを起こします。

また、プリンター解像度(DPI)とエクセル側のセル拡大率の不整合も深刻な問題を引き起こします。業務用サーマルラベルプリンター(203DPIや300DPI)で出力する場合、1ドット単位で細バー・太バーを描画する必要があります。しかし、エクセルからWindowsプリンタードライバーを経由して印刷すると、OS側でアンチエイリアス(中間のグレー処理)や微妙な拡大縮小がかかり、バーのエッジがぼやけて細バーと太バーの比率が狂ってしまう現象が頻発します。

「インクジェットで印刷したらインクのにじみで隙間が埋まった」「レーザープリンターのトナー定着不良でバーの一部がかすれていた」といった微細な乱れも、CODE128の精密なスキャンを阻害する決定打となります。読み取りテストを行う際は、スマートフォンのバーコードリーダーアプリと、現場で実際に使う光学式レーザースキャナーや2次元イメージャーの両方で検証する体制が欠かせません。

【実態検証】無料オンラインツールとフリーソフトの評判・安全な選び方

「エクセルでマクロを組むスキルがない」「今すぐ数枚だけラベルを作りたい」という現場では、ブラウザ上で完結する生成ツールに頼るケースも目立ちます。しかし、業務利用において無料サービスを使う際には特有のリスクと利便性のトレードオフが存在します。

現場のエンジニアや総務担当者の口コミを検証すると、CODE128無料作成オンラインツールの多くは「画像(PNG/SVG)として即座にダウンロードできるため、チェックデジットの計算を自前で行う必要がなく確実」と高い評価を得ています。特にSVG形式で出力できるツールは、画像をどれだけ拡大しても解像度が劣化しないため、IllustratorやWordに貼り付けてラベル印刷する際の読み取り精度が極めて安定します。

一方で、セキュリティの観点から2026年最新バーコード作成フリーソフト評判を調査すると、重大なリスクが浮き彫りになります。製品のシリアル番号、社内資産管理番号、顧客IDなど機密性の高いデータを海外の怪しい無料Webジェネレーターに入力した場合、通信経路での盗聴やサーバー側のアクセスログからの情報漏洩リスクを否定できません。独立行政法人情報処理推進機構(IPA)のガイドラインでも、業務データの安易な社外オンラインツールへの投入は厳しく戒められています。

スタンドアロンで動作するオープンソースソフト(例:Zint Barcode Studioなど)や、国内著名ベンダーが提供するオフライン動作型のフリーソフトであれば、PC内部でレンダリングが完結するため機密データの漏洩を防ぐことができます。「無料だから」と飛びつく前に、そのツールが完全オフラインで動作するか、通信を発生させているかを確認することが企業防衛の鉄則です。

公の場での発言・インタビュー報道記録
【検証資料 3】公の場での発言・インタビュー報道記録(出典:storage.qr.c-cloud.co.jp)

現場の混乱を防ぐ運用設計|導入すべき組織と避けるべきケースの判断基準

バーコード作成を「エクセル自作」で押し通すか、「専用ラベル発行システム」に投資するかは、組織の規模と業務クリティカル度によって明確に分かれます。現場の人的ミスとトラブル復旧コストを天秤にかけた、明確な選定基準を提示します。

【プロの結論】エクセルVBA自作に向いている組織・条件

  • 管理点数が数百点規模:社内備品や固定資産など、スキャンに失敗しても数秒の手入力でリカバーできる非リアルタイム業務。
  • 専任の社内SE・IT担当が存在する:エクセルのバージョンアップやOS入れ替えに伴うフォント非互換、マクロ動作不良に即応できる保守体制がある。
  • コストを極限まで抑えたい初期フェーズ:追加予算ゼロで仕組みを立ち上げ、業務フローを固めたい実証実験段階。

【プロの結論】エクセル自作を避け、専用ソフト・ハードを導入すべき組織

  • 物流センター・出荷検品現場:1日数百回以上のスキャンが発生し、1回の読み取り不良がトラックの出発遅延や誤出荷事故に直結する環境。
  • 複数拠点でラベルを発行する企業:各拠点のPC環境やプリンター機種がバラバラで、エクセルの印刷ズレを個別に保守しきれないケース。
  • GS1-128など厳密な業界標準への準拠が求められるサプライチェーン:専用のバーコード作成ソフト(BartenderやLabelstar Proなど)を導入し、プリンター側で正確なバー幅(ドットマッチング)制御を行う方が、結果としてトラブルシューティングの人件費を劇的に削減できます。

【バー コード 作成 code128】に関するよくある質問(FAQ)

Q1:CODE128のバーコードフォントをインストールしたのに、エクセルのフォント一覧に出てきません。何が原因ですか?
A1:フォントファイルのインストール時に「すべてのユーザーに対してインストール(管理者権限)」を行っていない場合や、フォントの追加時にエクセルが起動したままでフォントキャッシュが更新されていないことが主な原因です。一度エクセルを完全に終了させた上でフォントを再インストールし、PCを再起動してから再度確認してください。

Q2:エクセルでチェックデジットを計算せず、前後に特定の記号を付けるだけでCODE128を読み取らせる裏ワザはありますか?
A2:ありません。CODE39と異なり、CODE128はモジュロ103による重み付け計算と、それに対応する正しいキャラクタパターンの出力が規格上必須です。前後に特定の文字を足すだけでバーコード化を謳う方法はCODE39の仕様と混同された誤情報ですので、必ずVBAマクロ等で計算処理を行ってください。

Q3:スマホのカメラでは読み取れるのに、専用のハンディスキャナーでは読めないのはなぜですか?
A3:最新のスマートフォンのカメラスキャンアプリは高度な画像補正AIを搭載しており、多少の線の歪み、にじみ、コントラスト不足、クワイエットゾーン不足を補正して無理やりデコードします。対して業務用のレーザースキャナーや標準的な一次元リーダーは、反射光のコントラストとバーの幅比率を厳密に判定するため、印刷精度が規格を下回ると読み取りを拒否します。現場運用の基準は、必ず実機のハンディスキャナーで検証しなければなりません。

まとめ:今後の動向と失敗しないための判断基準

CODE128は、英数字や記号を自在に扱い、高密度な情報格納を可能にする極めて完成度の高い一次元バーコードです。しかしその高度な仕様ゆえに、「フォントを当てるだけで手軽に作成できる」という甘い認識で運用を始めると、チェックデジットの未計算や解像度不足による読み取り不能トラブルという手痛い洗礼を受けることになります。

自社でエクセル運用を行うのであれば、モジュロ103の計算アルゴリズムを正しく組み込んだVBAの実装、オープンソースフォントの確実な管理、そして左右のクワイエットゾーンを確保したレイアウト設計を徹底してください。一方で、日々の出荷やサプライチェーンを支える基幹業務であるならば、無理なエクセルDIYに固執せず、専用のバーコード作成ソフトウェアや産業用ラベルプリンターを導入することが、現場の混乱と見えない人件費の流出を食い止める最善の策となります。仕組みを正しく理解し、自社の業務クリティカル度に応じた最適な作成手法を選択してください。 (出典: バー コード 作成 code128(Yahoo!ニュース))

バー コード 作成 code128
バー コード 作成 code128
バー コード 作成 code128