JANCODEをバーコードのフォントを使ってピッってできるようにしちゃうエクセル
商品についてあるバーコードをエクセルでも表示できるように作成しました。
JANコードのバーは、0~9が3種類 と、スタート、センター、エンドの3種類の合計33個のバーがあります。
スタートからセンターまでの6個で2種類、センターからエンドまで1種類を使用してできています。
決まった法則 に基づいて白黒の位置が決まりますので、どんな組み合わせか計算する必要があります。
スキャンできるようにするには、表示用の文字列を取得する必要があります。
javascript版(別タブ) や専用エクセル 、アドイン登録したエクセル を使って、表示用の文字列に変換したあと、
JANコードのフォントに変更するとスキャンできるバーコードになります。
2016年2月11日
一例
JAN:4902102072618
バー用文字列:X9A21ACKLSNRMTZ
和文フォントで作成しました
JANCODE-nicWabun/JANCODE-nicBAR は和文フォントとして作成したので、ブラウザで表示することができます。
google chrome は、 『JANCODE-nicWabun/nicotan/nicBAR』どれも表示できるようです。
nicWabun
半角英数字:数字あり
全角英数字:数字なし
数字ありと数字なしの2つ入ってます。
あり⇔なし の切り替え を、半角 ⇔ 全角の切り替え で行えます
nicBAR
半角英数字:数字なし
CSS用に nicWabun.eot .woff の2種類も合わせて作成しました。
試しに半角で 4902102072618 を入力してみてね↓
JAN:
エクセル(アドイン、専用エクセル)のご利用に関して
MIT ライセンス
Copyright (c) 2015 nicotan
Released under the MIT license
http://opensource.org/licenses/mit-license.php
MIT ライセンスの全文の意訳の引用元http://sourceforge.jp/projects/opensource/wiki/licenses%2FMIT_license#h1-The.20MIT.20License
The MIT License
Copyright (c) year copyright holders
以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
上記の著作権表示および本許諾表示を、ソフトウェアのすべての複製または重要な部分に記載するものとします。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。
ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
具体的に言うと
エクセルを会社で使いたい
マクロを変えて会社で使いたい
アドインファイルを共有サーバーに置いてつながっているPCで使いたい
エクセルのVBAをいじってソフトウェアとして販売したい
自由に使えます
ただし、
保証はないです
ソースが原因で何かがあっても責任は一切追いません
ソースコードを利用してソフトウェアとして販売する場合は、この3行を記載してください(ヘルプとか)
Copyright (c) 2015 nicotan
Released under the MIT license
http://opensource.org/licenses/mit-license.php
MIT ライセンス自体の詳細はぐぐってください
ソース
ソースコードを表示する(別タブ)
使える数式
エクセルのダウンロードはこちら
業務PCのため権限がなくアドイン登録できない場合や、他人に渡す場合は 『=jan()』が埋め込まれた、
通称『専用のエクセル』をどうぞ
『専用のエクセル』ダウンロード:JANCODE-nicotan用エクセル20151028ITF.xls
無料。
右クリックして対象をファイルに保存を選んでね。
バージョン:(2015.10.28)
アドイン登録後、エクセルを起動しなおすとアドインが適用されない件(=jan()が使えたのにNAME?になる)
インターネット上から取得したファイルにロックを掛けるようになっているのが原因でした。
なおしかた?解決策は↓をご覧ください。
1.ダウンロードしたファイルを右クリック
2.プロパティ
3.一番下のロック解除
2015年10月に要望のあったITFコードの数式を追加しました。
JANコードのバーコードとは全く違いますので当フォントは使用できません。
バーコードのフォントは「 ITF バーコード フォント 」でググれば出るはず
需要があるかわかりませんが2か月遅れですが公開します
アドインファイルもあります
アドインファイルはこちら
リボンバージョン
※ 注 エクセル2007バージョン以降をお使いの方のみです
リボンカスタマイズバージョンはこちら(2007以降)
数式のみバージョン
数式のみバージョンはこちら
更新履歴
2015年12月17日
JANCODE-nicotan用エクセル20151028ITF.xls を公開しました。
ITFコードを返す数式を追加しました
コードを返すだけです。
=itf(インジケータ, JANコード)
=itf(1, 4902102072618) => 14902102072615 ・・・あってる?
=itfcd(インジケータ, JANコード)
=itfcd(1, 4902102072618) => 5
引数を2つにした方がセルの指定からのオートフィルが楽なんじゃないかと思いました(セル番地,セル番地)
2015年8月10日
JANCODE-nicotan用エクセル20150810.xls を公開しました。
=reJan(8桁) が実行されない不具合を修正しました。
実は、アドイン用の方さりげなく直してました(´・ω・`)
2015年8月6日
2015年5月4日
VBA を配列式に変更してみました。(ファイルサイズが10kbぐらい減りました)
ソースコードを(2015.05.04)に変更しました。
2015年4月16日
『関数の挿入時』の「ユーザー定義関数」欄から「JANCODE」 という項目になるように名前を指定しました
エクセルの数式に =janw() を追加しました。
『JANCODE-nicWabun』を使用して数字なしのバーを表示させるための数式です(答えが全角になります)
『JANCODE-nicBAR』を使用する場合は =jan() を使ってください
=JanW() の『関数の挿入』メッセージを追記しました。
『頭が0である場合』があるので =rejan() の答えを数値型ではなく文字列のJANコードにするようにしました
=rejan() に『JANCODE-nicWabun』用の全角文字列に対応しました
専用エクセルにてセルの入力中に =Jan =JanCD =JanW =reJan が入力候補に出るように public function にしました
ソースコードを(2015.04.16)に変更しました。
エクセルの使い方(総合窓口)
各種ページへ飛びます
フォントのインストール(別ページ)
アドインの登録・削除(別ページ)
セキュリティの警告リンクの自動更新が無効にされました
アドイン・専用エクセル =jan() の使い方
専用エクセルの名前を付けて保存時の注意
入力したJANコードが4.9E+12になる
エクセルの先頭に0を付けたい
外国製品の12桁をバーコードにすると違うコードになってしまう
わかんなかったら連絡ちょうだいね
また、エクセルでこんなのほしいとかあったら言ってね
プロじゃないのでできないものはできませんができるものはできるとおもいます。
少しでも業務多忙のみなさんの時間短縮になれば幸いです
jancode.nicotan@gmail.com
(*´Д`*)v
使い方
適当なセルに JAN (7桁・8桁・12桁・13桁)を入力する
別なセルに =jan(上記のセル番地) と入力する
例:
A1 4903076050015
B1 =jan(A1)
※ =jan( 4901085080405 ) と直接打ち込んでもおk
=jan()と入力したセルのフォントをJANCODE-nicotanに変更する
フォントの大きさを便宜調整して使ってね
エクセルですので、オートフィルが利用できます。
専用エクセルの名前を付けて保存時の注意
2000(未確認)、2003(確認済み)、2007-2016 まで開けるように「Excel 97-2003 ブック」形式で配布しています。
専用エクセル内に数式を埋め込んでありますので(VBA)、
名前を付けて保存する際には
Excel 97-2003 xls (旧式中身と合体)
Excel マクロ有効ブック xlsm (2007以降VBAを保存)
のいずれかにする必要があります
Excel ブック xlsx 形式で保存すると、マクロ(VBA)を破棄して保存されますので =jan() 等使用できなくなります。
互換モードを変換するとマクロ有効ブック(xlsm)として書き換えられます 。
JANコードの数字が全て表示されない E+12
入力したJANが 4.9...E+12 となって表示されているのは桁が大きすぎて略しているだけです。
4兆ですからw( =jan()にはなんの影響もありません。見た目上というだけ。)
セルの書式設定
表示形式を、一番下のユーザー定義 種類を半角で0(ゼロ)を入力(選択)
入力した数字が出てきます。( =jan()にはなんの影響もありません。)
エクセルでセルの先頭に0を付けたい (=jan() へ反映させるとして)
方法1 頭にシングルクオーテーションを付ける
頭にシングルクオーテーションを付けると文字の数値として認識されます。
'0123456
=jan( A1 )
方法2 ダブルクオーテーション(" ")で数字を囲む
直接引数に入力している場合のみ
=jan("0123456")
方法3 ダブルクオーテーションで0を囲み "&" でくっつける
=jan("000"&A1)
⇒意味:文字列000の次にA1に入力されている値をくっつけた値
これだとオートフィルが利用できます
外国製品の12桁を生成すると違うコードになってしまう
UPCコードかと思われます。
JANコードとして1桁足りないので、頭に0を付けてください。
上記と同じように、
'0876543210981
=jan(A1)
=jan("0876543210981")
=jan("0"&A1)
文字列を取得できます
javascriptの場合
入力欄にJANコード(チェックデジット有り無し)を入力し、【変換】ボタンをクリック
枠線内に文字列が表示されます。
この文字列を、「フォント」を変えられるソフト(エクセルに限らず、ワードや画像加工ソフトなど)で
『JANCODE-nicotan/JANCODE-nicBAR』に変えるとバーコードが表示されます。
エクセル(専用・アドイン)の場合
オリジナル数式 =JAN() を使用します。
=JAN(A1)のようにJANコードが入力されているセル番地を入れます
=JAN(490210207261)※チェックデジットなし、
=JAN(4902102072618)のように直接JANコードを入れても構いません
フォントを『JANCODE-nicotan/JANCODE-nicBAR』に変えるとバーコードが表示されます。
エクセル2007以降用リボンカスタマイズバージョンの場合
※ 書き換えられますのでセルの選択と、設定値に注意です
リボンカスタマイズバージョンのページへ移動
セルを選択します。
文字列取得ボタンをクリックします
文字列が書き込まれます
rubyの場合
※知っている人向けです
require "./def_jan" をして読み込んでください。
jan() 引数に、『文字列数値、数値』を入れると、文字列が返ってきます。
配列を入れると文字列になった上でそのまま配列が返ります。