5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Excelで請求書バーコードGS1-128を作成する

Last updated at Posted at 2021-08-01

バーコードの作り方って記事が少なくて作るのに苦労したので書いておきます

CODE128フォントをインストール

GS1-128はCODE128(CODE-C)なのでCODE128のフォントをダウンロード、インストールしてExcelでバーコード表示できるようにします

Grandzebu code128.ttf ページ中央部にダウンロードがあります
https://grandzebu.net/informatique/codbar-en/code128.htm

関数でCODE-Cバーコード作成

バーコードは適当な値で作っています
gs1-128sample.png
B1セルはGS1-128バーコード値です(桁数と項目のマッピングは参考のガイドライン参照)
B2セルはチェックディジットで関数は以下です

=MOD(105+102+2*INT(LEFT(B1,2))+3*INT(MID(B1,3,2))+4*INT(MID(B1,5,2))+5*INT(MID(B1,7,2))+6*INT(MID(B1,9,2))+7*INT(MID(B1,11,2))+8*INT(MID(B1,13,2))+9*INT(MID(B1,15,2))+10*INT(MID(B1,17,2))+11*INT(MID(B1,19,2))+12*INT(MID(B1,21,2))+13*INT(MID(B1,23,2))+14*INT(MID(B1,25,2))+15*INT(MID(B1,27,2))+16*INT(MID(B1,29,2))+17*INT(MID(B1,31,2))+18*INT(MID(B1,33,2))+19*INT(MID(B1,35,2))+20*INT(MID(B1,37,2))+21*INT(MID(B1,39,2))+22*INT(MID(B1,41,2))+23*INT(MID(B1,43,2)),103)

A4セルはCODE128フォントを適用しています バーコードの形式は以下です
105(startC) + 102(Fnc1) + バーコード値 + チェックディジット + 106(stop)

="ÒÏ"&UNICHAR(IF(INT(LEFT(B1,2))<95,LEFT(B1,2)+32,LEFT(B1,2)+105))&UNICHAR(IF(INT(MID(B1,3,2))<95,MID(B1,3,2)+32,MID(B1,3,2)+105))&UNICHAR(IF(INT(MID(B1,5,2))<95,MID(B1,5,2)+32,MID(B1,5,2)+105))&UNICHAR(IF(INT(MID(B1,7,2))<95,MID(B1,7,2)+32,MID(B1,7,2)+105))&UNICHAR(IF(INT(MID(B1,9,2))<95,MID(B1,9,2)+32,MID(B1,9,2)+105))&UNICHAR(IF(INT(MID(B1,11,2))<95,MID(B1,11,2)+32,MID(B1,11,2)+105))&UNICHAR(IF(INT(MID(B1,13,2))<95,MID(B1,13,2)+32,MID(B1,13,2)+105))&UNICHAR(IF(INT(MID(B1,15,2))<95,MID(B1,15,2)+32,MID(B1,15,2)+105))&UNICHAR(IF(INT(MID(B1,17,2))<95,MID(B1,17,2)+32,MID(B1,17,2)+105))&UNICHAR(IF(INT(MID(B1,19,2))<95,MID(B1,19,2)+32,MID(B1,19,2)+105))&UNICHAR(IF(INT(MID(B1,21,2))<95,MID(B1,21,2)+32,MID(B1,21,2)+105))&UNICHAR(IF(INT(MID(B1,23,2))<95,MID(B1,23,2)+32,MID(B1,23,2)+105))&UNICHAR(IF(INT(MID(B1,25,2))<95,MID(B1,25,2)+32,MID(B1,25,2)+105))&UNICHAR(IF(INT(MID(B1,27,2))<95,MID(B1,27,2)+32,MID(B1,27,2)+105))&UNICHAR(IF(INT(MID(B1,29,2))<95,MID(B1,29,2)+32,MID(B1,29,2)+105))&UNICHAR(IF(INT(MID(B1,31,2))<95,MID(B1,31,2)+32,MID(B1,31,2)+105))&UNICHAR(IF(INT(MID(B1,33,2))<95,MID(B1,33,2)+32,MID(B1,33,2)+105))&UNICHAR(IF(INT(MID(B1,35,2))<95,MID(B1,35,2)+32,MID(B1,35,2)+105))&UNICHAR(IF(INT(MID(B1,37,2))<95,MID(B1,37,2)+32,MID(B1,37,2)+105))&UNICHAR(IF(INT(MID(B1,39,2))<95,MID(B1,39,2)+32,MID(B1,39,2)+105))&UNICHAR(IF(INT(MID(B1,41,2))<95,MID(B1,41,2)+32,MID(B1,41,2)+105))&UNICHAR(IF(INT(MID(B1,43,2))<95,MID(B1,43,2)+32,MID(B1,43,2)+105))&UNICHAR(IF(INT(D77<95),D77+32,D77+105))&"Ó"

PayPayやLINEPayの請求書バーコードリーダーで読み込めれば完成!!

参考

GS1-128シンボルによる標準料金代理収納ガイドライン(第4版)
https://www.dsri.jp/standard/barcode/gs1-128_payment_service.html

yahoo知恵袋 CODE128(CODE-C)バーコード作成について
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12147492422

5
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?