朗報

アドイン登録後、エクセルを起動しなおすとアドインが適用されない件(=jan()が使えたのにNAME?になる)

インターネット上から取得したファイルにロックを掛けるようになっているのが原因でした。
なおしかた?解決策は↓をご覧ください。

1.ダウンロードしたファイルを右クリック
2.プロパティ
3.一番下のロック解除

JANCODEをバーコードのフォントを使ってピッってできるようにしちゃうエクセル

商品についてあるバーコードをエクセルでも表示できるように作成しました。
2016年2月11日
JANコードのバーは、0~9が3種類と、スタート、センター、エンドの3種類の合計33個のバーがあります。

スタートからセンターまでの6個で2種類、センターからエンドまで1種類を使用してできています。

決まった法則に基づいて白黒の位置が決まりますので、どんな組み合わせか計算する必要があります。
スキャンできるようにするには、表示用の文字列を取得する必要があります。
javascript版専用エクセルアドイン登録したエクセルを使って、表示用の文字列に変換したあと、 JANコードのフォントに変更するとスキャンできるバーコードになります。

一例

4902102072618 X9A21ACKLSNRMTZ
JAN:4902102072618
バー用文字列:
X9A21ACKLSNRMTZ
JANCODE-nicBAR は和文フォントとして作成したので、ブラウザで表示することができます。
google chrome は、
『JANCODE-nicotan/nicBAR』どちらも表示できるようです。
JAN:
※css
@font-face {
font-family:"JANCODE-nicBAR";
src: url("../JANCODE-nicBAR.ttf");
}
ページ内をいろいろ更新してますのでCSSの反映、jsの反映のためにページを更新してください。

【 JANCODE-nicWabun 】を新しく作成しました。

nicBARと同様、和文フォントとして作成したので、ブラウザで表示することができます。
nicBARと違うのは、数字ありと数字なしの2つ入ってます。

数字ありは半角英数字(通常通り)

数字なしは全角英数字(全角)に割り当てました。

あり⇔なし の切り替えを、半角 ⇔ 全角の切り替えで行えます
また、ブラウザで表示できるように nicWabun.eot .woff の2種類も合わせて作成しました。
JAN:
※css
@font-face {
 font-family: 'JANCODE-nicWabun';
 src: url('../version2/JANCODE-nicWabun.eot?#iefix') format('embedded-opentype'),
url('../version2/JANCODE-nicWabun.woff') format('woff'),
url('../version2/JANCODE-nicWabun.ttf') format('truetype');
}

JANコードに関するいろんな記事はこちら

バーコード(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用の文字列変換エクセル.xls
シートの削除、追加しても使用できます
開いてすぐのシートを参考に使用してください

★ 使える数式(2015.04.16~) ★

=jan()
=jan(A1)、=jan(4902430520294)
引数に7桁8桁12桁13桁のJANコードを入れるとフォント用の文字列が返ります。
=jancd()
=jancd(A1)、=jancd(4902430520294)
引数に7桁8桁12桁13桁のJANコードを入れるとチェックデジットの数字のみを返します
=rejan()
=rejan(A1)、=rejan("X9A24DAKQNLNUPZ")
引数にフォント用の文字列を入れるとJANコードを返します
直接入力する場合は""で囲むの忘れずに
=janw() の実装に伴い、引数に nicWabun 用の全角文字列を入れてもJANコードが返るようにしました。
※チェックデジットの計算をしません。
=janw() (※ver20150416~)
=janw(A1)、=janw(4902430520294)
引数に7桁8桁12桁13桁のJANコードを入れると、『JANCODE-nicWabun』の数字なし用の文字列が返ります。(全角文字列)
=itf() (※ver20151028ITF.xls)
=itf(1, A1)、=itf(1, 4902430520294)
引数の1つ目にインジケータ(1桁)
2つ目に7桁8桁12桁13桁のJANコードを入れると、チェックデジットを付与したコードを返します
=> 14902430520291
=itfcd() (※ver20151028ITF.xls)
=itf(1, A1)、=itf(1, 4902430520294)
引数の1つ目にインジケータ(1桁)
2つ目に7桁8桁12桁13桁のJANコードを入れると、チェックデジットの数字を返します
=> 1

ダウンロード:JANCODE-nicotan用エクセル20151028ITF.xls
無料。
右クリックして対象をファイルに保存を選んでね。
バージョン:(2015.10.28)

※上書きして使用してください。
2007以降に変換する場合は、内部にマクロが埋め込まれていますのでxlms形式にして保存してください


10月に要望のあったITFコードの数式を追加しました。
JANコードのバーコードとは全く違いますので当フォントは使用できません。
バーコードのフォントは「 ITF バーコード フォント 」でググれば出るはず
需要があるかわかりませんが2か月遅れですが公開します


※あえて古いのをダウンロードする必要もないような気がしますが置いときます
※実装していない数式がありますので普通に最新版↑をご利用ください

(2015.08.10)
JANCODE-nicotan用エクセル20150810.xls
=rejan(8ケタ)を実行したときに関数内で15ケタとして計算していたので9桁目でエラーが発生し 変換されない不具合を修正しました

※ rejan(8桁)が計算できない不具合があります。
(2015.05.04)
JANCODE-nicotan用エクセル20150504.xls
(2015.04.16)
JANCODE-nicotan用エクセル20150416.xls

(2015.03.22)
JANCODE-nicotan用エクセル20150322.xls
旧バージョン(2014.05.15)
JANCODE-nicotan用エクセル20140515.xls
旧バージョン(2014.04.10)
JANCODE-nicotan用エクセル20140410.xls
旧バージョン()
JANCODE-nicotan用エクセル.xls

※VBAを使用していますので、開く際にはマクロを有効にする必要があります。
このエクセルを使用によって、データ・パソコンの障害・不具合に関して一切の責任を負いかねます。予めご了承ください。

アドインファイルのダウンロードはこちら

エクセルのアドイン:JANCODE-nicotan用エクセル.xla

どんなアドイン?
JANの数字を数式を使ってバーのフォント用文字列に変換します。
数式は =jan() です。()の中にセル番地、もしくはJANコードを入れると変換されます。
また、チェックデジットの計算をしますので、付与された状態で文字列になります。
 =jan(A1)
 =jan(490210207261)
 =jan(4902102072618)

★ 使える数式(2015.04.10) ★

専用エクセルと同じです。

エクセルの基本操作「オートフィル」を使用すると大変便利です。


ダウンロード:無料。
JANCODE-nicotan用エクセル.xla
右クリックして対象をファイルに保存を選んでね。
バージョン:(2015.04.16)

※アドインファイルを使用するのであれば専用エクセルは必要ありません。


※VBAを使用しています。
※オリジナルはこのサイトのみの配布です。悪戯ができてしまうのもVBAです。他サイトの配布のご利用にはご注意ください。
※このエクセルを使用によって、データ・パソコンの障害・不具合に関して一切の責任を負いかねます。予めご了承ください。

リボンカスタマイズバージョンできたよ!(2007以降)

※ 注 エクセル2007バージョン以降をお使いの方のみです
別ページへ移動


リボンカスタマイズバージョンは、選択したセルをワンクリックで書き換えます
アドインファイルも作成しましたので=jan()を文字列化し配布する際のエラー(リンク)を防げます
また、文字列の取得も「新しいシート」を選択すると、JANコード、フォント用文字列の2列で作成しますので
コピペが楽になると思います


数式のみバージョンができました

iPhoneでJANCODE-nicotan iPad のエクセルで使用したいということで要望がありました。
しかし Office for iPad は vba が使用できないということで Vlookup などの数式のみを使用して文字列を出すエクセルを作成しました。
数式のみバージョンへ


更新履歴

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)に変更しました。


文字列を取得できます


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() 引数に、『文字列数値、数値』を入れると、文字列が返ってきます。
配列を入れると文字列になった上でそのまま配列が返ります。
cmd_ruby_def_jan
わかんなかったら連絡ちょうだいね
また、エクセルでこんなのほしいとかあったら言ってね
プロじゃないのでできないものはできませんができるものはできるとおもいます。
少しでも業務多忙のみなさんの時間短縮になれば幸いです
jancode.nicotan@gmail.com
(*´Д`*)v

とてもよくあるお問い合わせ

先頭が0で始まっている

Q.13桁(8桁)のJANで、独自に発行している番号があり「0」で始まっているものがあります。 しかしエクセルに入力すると0が消えてしまい、バーコードを作ることができません。

A.ダブルクオーテーション(" ")で数字を囲い、文字列として引数に入れてください。
直接引数に入力している場合
=jan("0123456")
JANが別のセルに入力されていて、0が消えている場合
=jan("000"&C1)
⇒意味:文字列000の次にC1に入力されている値をくっつけた値
これだとオートフィルが利用できます

外国製品の12桁

外国製品(例8や9)で始まっている12桁のJANがうまくスキャンできずエラーになってしまいます。

それってもしや8、9で始まっているというよりJANとして1桁足りないので、頭に0を付けるといいかも?
先頭に0を付けてみてください。
上記と同じように、
=jan("0876543210981")
UPCコードだと思います。アメリカの12桁から日本用の13桁のJANにするために2種類のバーを使い始め...以下略


フォントのインストール

フォントをダウンロードしてインストールする(右クリック→インストール)
フォントを右クリック
WindowsXPをお使いの方は「コントロールパネル」→「フォント」でフォントのフォルダを開いて、 そこに直接ドラッグ&ドロップ?してやるとインストールできたはず

アドインの登録・削除と、『セキュリティの警告』の対処『関数の挿入』のメッセージ

アドインの登録

  1. アドインファイルをダウンロードします。
    他のPCと統一できるように保存先を『C:\Excel\』など同じファイルパスにするといいです。
    例 C:\Excel\JANCODE-nicotan用エクセル.xla

    関連記事#=jan()を使用できるようにアドインを導入し保存したエクセルファイルを別PCで使用したい場合
  2. エクセルを起動します。
  3. アドインの登録方法はバージョンによって違います。
    • 2003の場合 → ツール → アドイン
    • 2007の場合 → Officeボタン → エクセルオプション → アドイン → エクセルアドインを選択して 設定
    • 2010以降? → ファイル → オプション → アドイン → エクセルアドインを選択して 設定
  4. アドインの設定画面(共通)
  5. 参照をクリックして保存したアドインファイルを選択する
  6. チェックボックスにレ点しOKボタンをクリック
  7. これで専用のエクセルじゃなくとも =jan() が使用できるようになります
  8. あとは変換されたセルのフォントを変えます

アドインの消し方

  1. エクセルを全て閉じ、登録しているアドインファイルを消します。
  2. エクセルを起動するとファイルが削除されているのでエラーメッセージが表示されます。
  3. アドインの登録方法と同じようにアドインのリストの画面を出します。
  4. JANCODE-nicotan用アドインをクリックするとリストから削除しますか?出るので、はいをクリックする
  5. これでアドインが消されています。

リンク元がJANCODE-nicotan用エクセルで『セキュリティの警告 リンクの自動更新が無効にされました』の対処方法


※アドイン登録したPCなら =jan() が使える、というわけではなく 『どこそこに保存したアドインファイルのプログラムを使う』となっているようで、保存先も一緒に記録しています。
その保存先が C:\Users\satou\ だったり C:\Users\takahashi\ だったりと、 ユーザー名が全員違うから、別のPCで開くと記録してある保存先にアドインファイルが見つからないので、エラーとなっているようです

C:\Users\●●\AppData\ ●●は全員違う
C:\Excel\ ならみんなおなじ

そこで単純にユーザー名を使わない共通のファイルパスにできる場所にアドインファイルを保存すれば、 エラーはでないはずです。
ローカルネットワークを構築しているのであれば共有している場所に保存し、共有先を指定すればファイルパスが一致している限りエラーはでないはずです

  1. 一度アドインファイルを消します
    レ点のし直し、ファイルの再指定ではなく、削除してエクセルを閉じる。
    ※ 次の手順のわかりやすい場所に保存されていれば毎回消す必要はありません手順5からスタートしてください。
  2. ユーザー名を含まない、わかりやすい場所にアドインファイルを保存します
  3. アドインを再登録する
  4. 該当のエクセルファイルを開く
  5. 2007/2010の方は、『データ』タブのリンクの編集をクリック
    2003の方はリンクの編集をクリック(編集(E)>リンクの設定)
  6. リンク元にJANCODE-nicotan用エクセル.xla を選択した状態で、リンク元の変更をクリック
  7. ファイル参照になるので、新しく保存したアドインファイルの場所を選択する
  8. 閉じる
  9. これでおk

    自動的にファイルパスの部分が削除されます。

『関数の挿入』→『関数の引数』の画面のメッセージ


  1. エクセルを起動します
  2. アドインファイルを開く(マクロの有効をクリック)
  3. キーボードの『ALT』を押しながら『F11』を押します。Microsoft Visual Basic が起動します。
  4. sub janHelp()と書かれたエリアでクリックします。
    (カーソルのピコピコが sub janHelp から End Sub の間に来てればおk)
  5. メニューの▲(Sub/ユーザーフォームの実行(F5))をクリック
    表示されてなければ、『メニュー』→『実行』→『Sub/ユーザーフォームの実行(F5)』
    もしくは、キーボードの『F5』を1回クリック
  6. なんの反応もしませんがこれでおk。

    パソコンが Sub janHelp の書かれた処理を一瞬で終えます。
    本当であれば msgbox "おわたよ" のメッセージを出すといんだろうけどw
  7. 忘れずに上書き保存する
    最初にやったきり、何回か更新したのに反映されないなーと思ったら、
    アドインファイルのsub janhelp を実行して、実行したことをアドインファイルに記憶させるために上書き保存が必要ってことがわかった。
    これを1回だけやると、エクセルを再起動してもパソコンを再起動しても、
    ・関数のメッセージが表示される
    ・ユーザー定義関数欄のいらない function が隠れる
    ようになります。

他のPCでも =jan() が使われたエクセルを使用したい場合

  • 新しく「リボンカスタマイズバージョン」ができました。
    専用のエクセルと同じく、=jan() 他関数が使用できます
    リボンカスタマイズバージョンは、ワンクリックでJANコードをフォント用に書き換えます
    アドインに登録すれば、書き換え名前を付けて保存すれば、他PCでフォントがインストールされていれば バーコードが表示されます
  • 専用のエクセル』を使う場合
    エクセルのファイルの中に function jan() が埋め込まれていますので、
    このファイルを使って自由に編集(シートの追加削除自由)して上書き保存。他のPCに移しても問題なく使えます
  • アドインファイルの保存先が同じであればエラーでずに使用できます。
    エラーが出た(『セキュリティの警告 リンクの自動更新が無効にされました』)場合はこちらを参照してください。
    例:
    PC1 C:\Excel\JANCODE-nicotan用エクセル.xla
    PC2 C:\Excel\JANCODE-nicotan用エクセル.xla
    (いくよね?自分の環境だとうまくいったんだが)
  • 回答の意図とは違いますが、数式 =JAN() の答えを文字列化してしまう(リボンバージョンをご利用ください)
    =jan() というプログラムを参照するためにエラーが出るわけですから、 変換された文字列を =jan() の場所に上書きしてしまえば手入力したのと同じですので エラーを出さずに開けます。
    下記に記載してる手順でコピペで値を選ぶと文字列化しますので、別なセルに貼り付け、 その後 =JAN() の位置に値となったものを張り付ければアドインが登録されていないPCで問題なく(エラー無く)開けます。
    ※開けるだけです。フォントがインストールされてなければ、ただ X9A21ACKLSNRMTZ と表示されるだけです。

使い方

  1. 適当なセルに JAN (7桁・8桁・12桁・13桁)を入力する
  2. 別なセルに =jan(上記のセル番地) と入力する
    JANを入力中
    例:
    A1  4903076050015
    B1  =jan(A1)

    ※ =jan( 4901085080405 ) と直接打ち込んでもおk
  3. =jan()と入力したセルのフォントをJANCODE-nicotanに変更する
    フォント変更
  4. フォントの大きさを便宜調整して使ってね
  5. エクセルですので、オートフィルが利用できます。
    オートフィル

JANコードの数字が全て表示されない

  1. 入力したJANが 4.9...E+12 となって表示されているのは桁が大きすぎて略しているだけです。
    4兆ですからw( =jan()にはなんの影響もありません。見た目上というだけ。)
  2. セルの書式設定
  3. セルの書式設定
  4. 表示形式を、一番下のユーザー定義 種類を半角で0(ゼロ)を入力(選択)
    表示形式ユーザー定義
  5. 入力した数字が出てきます。( =jan()にはなんの影響もありません。)

エクセルを使用して文字列を取得する

リボンバージョンの方が簡単です。
文字列の取得は「同じシートの何列目」か、「新しいシート」を選択できます。
「新しいシート」を選択すると、JANコード、フォント用文字列の2列で作成しますので
コピペが楽になると思います

    専用エクセル・アドインを使用した場合
  1. 上記使い方の途中までおなじ
  2. 適当なセルに JAN (7桁・8桁・12桁・13桁)を入力する
  3. 別なセルに =jan(上記のセル番地) と入力する
    ※ =jan( 4901085080405 ) と直接打ち込んでもおk
  4. フォントを変更せず(MSゴシックなど)そのままにすると大文字英数字の羅列が出てきます。
  5. この大文字英数字の羅列がバーを表示するための文字列です。
  6. セルをコピーします
  7. 別のエクセルなど適当な場所を右クリックして、形式を選択して貼り付け
    貼り付け先を右クリック
  8. (2010の場合は、値の貼り付けを選ぶ)
  9. office2003、2007は「値」を選ぶ
    値の貼り付けを選ぶ
  10. バーコード用の文字列が得られます。
    バー用の文字列が得られる
  11. この文字列を、フォント『JANCODE-nicotan/nicBAR』に変更するとバーコードになります。

エクセルに限らない

  • 「文字列のフォントを変える」ことができればなんのソフトでもスキャンできるバーコードになります。
  • オフィスのワード
  • 画像加工系ソフト
    (PhotoshopElements9)

    ※フォトショの場合はドットをきれいにつぶし補うことできれいに見せますが、バーコードの場合はそのドットの白と黒の距離、幅が重要ですので死活問題です。
    画像化してヨッシャ!してましたが実際スキャンすると反応しません。(別ページの画像とかw)
    イメージのモードを『RGBカラー』から『インデックスカラー』に変更してフォントサイズを試行錯誤してがんばってくださいw