バーコードラベル印刷2
バーコードラベル印刷だけど、現状はExcelのリストとワードの差し込み印刷で
対応している。
これで、A4一枚に65個のシールのラベルに印刷してる。
EAN13というフォントをWindowsにインストールすればOK。
http://grandzebu.net/informatique/codbar-en/ean13.htm
上記にのっているVBのプログラムをそのまま、VBAに作って
完成。
でもワードの差し込みだと若干ずれてくる。
結局、WEBで挑戦してみた。できた。
上記WEBに乗ってるVBの関数をJavaScriptにして
あとは同様。
cnv_ean13(JANコード文字列)
で得られた文字列を、フォントに"Code EAN13"
を指定すればバーコードができた。
<div style="font-family:Code EAN13;">
ここにcnv_ean13の結果を配置
</div>
======================
function cnv_ean13(chain){
var CodeBarr;
var num=new Array(0,1,2,3,4,5,6,7,8,9);
var nu1= new Array("A","B","C","D","E","F","G","H","I","J");
var nu2= new Array("K","L","M","N","O","P","Q","R","S","T");
var nu3= new Array("a","b","c","d","e","f","g","h","i","j");
var x=({
3:{0:1,1:1,2:1,3:1},
4:{0:1,4:1,7:1,8:1},
5:{0:1,1:1,4:1,5:1,9:1},
6:{0:1,2:1,5:1,6:1,7:1},
7:{0:1,3:1,6:1,8:1,9:1}
});
if(chain.length==12){
var i;
for(i=0;i<12;i++){
var c=chain.substr(i,1);
if(c in num){
continue;
}else{
break;
}
}
var checksum=0;
if(i==12){
for(i=1;i<12;i=i+2){
checksum+=parseInt(chain.substr(i,1));
}
checksum*=3;
for(i=0;i<12;i=i+2){
checksum+=parseInt(chain.substr(i,1));
}
chain=chain+""+*1;
CodeBarr=chain.substr(0,1)+nu1[n];
var first=parseInt(chain.substr(0,1));
for(i=3;i<=7;i++){
var y=x[i];
if(first in y){
CodeBarr+=""+nu1[parseInt(chain.substr(i-1,1))];
}else{
CodeBarr+=""+nu2[parseInt(chain.substr(i-1,1))];
}
}
CodeBarr+="*";
for(i=8;i<=13;i++){
CodeBarr+=""+nu3[parseInt(chain.substr(i-1,1))];
}
CodeBarr+="*";
}
}
return(CodeBarr);
}
対応している。
これで、A4一枚に65個のシールのラベルに印刷してる。
EAN13というフォントをWindowsにインストールすればOK。
http://grandzebu.net/informatique/codbar-en/ean13.htm
上記にのっているVBのプログラムをそのまま、VBAに作って
完成。
でもワードの差し込みだと若干ずれてくる。
結局、WEBで挑戦してみた。できた。
上記WEBに乗ってるVBの関数をJavaScriptにして
あとは同様。
cnv_ean13(JANコード文字列)
で得られた文字列を、フォントに"Code EAN13"
を指定すればバーコードができた。
<div style="font-family:Code EAN13;">
ここにcnv_ean13の結果を配置
</div>
======================
function cnv_ean13(chain){
var CodeBarr;
var num=new Array(0,1,2,3,4,5,6,7,8,9);
var nu1= new Array("A","B","C","D","E","F","G","H","I","J");
var nu2= new Array("K","L","M","N","O","P","Q","R","S","T");
var nu3= new Array("a","b","c","d","e","f","g","h","i","j");
var x=({
3:{0:1,1:1,2:1,3:1},
4:{0:1,4:1,7:1,8:1},
5:{0:1,1:1,4:1,5:1,9:1},
6:{0:1,2:1,5:1,6:1,7:1},
7:{0:1,3:1,6:1,8:1,9:1}
});
if(chain.length==12){
var i;
for(i=0;i<12;i++){
var c=chain.substr(i,1);
if(c in num){
continue;
}else{
break;
}
}
var checksum=0;
if(i==12){
for(i=1;i<12;i=i+2){
checksum+=parseInt(chain.substr(i,1));
}
checksum*=3;
for(i=0;i<12;i=i+2){
checksum+=parseInt(chain.substr(i,1));
}
chain=chain+""+*1;
CodeBarr=chain.substr(0,1)+nu1[n];
var first=parseInt(chain.substr(0,1));
for(i=3;i<=7;i++){
var y=x[i];
if(first in y){
CodeBarr+=""+nu1[parseInt(chain.substr(i-1,1))];
}else{
CodeBarr+=""+nu2[parseInt(chain.substr(i-1,1))];
}
}
CodeBarr+="*";
for(i=8;i<=13;i++){
CodeBarr+=""+nu3[parseInt(chain.substr(i-1,1))];
}
CodeBarr+="*";
}
}
return(CodeBarr);
}
*1:10-checksum%10)%10);
var n=parseInt(chain.substr(1,1