<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Javascript | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<atom:link href="https://officevba.info/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://officevba.info</link>
	<description>仕事の役に立つVBA・GAS・Pythonのコードを紹介していきます。</description>
	<lastBuildDate>Fri, 27 Mar 2020 14:24:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://officevba.info/wp-content/uploads/2017/04/cropped-Excel_1-32x32.jpg</url>
	<title>Javascript | VBA・GAS・Pythonで仕事を楽しく効率化</title>
	<link>https://officevba.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Javascriptでバーコードを手作りする2</title>
		<link>https://officevba.info/javascriptbarcodemaker2/</link>
					<comments>https://officevba.info/javascriptbarcodemaker2/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Sun, 28 Aug 2016 14:15:17 +0000</pubDate>
				<category><![CDATA[BarCode作成]]></category>
		<category><![CDATA[Javascript]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=638</guid>

					<description><![CDATA[以前のバーコードを作るプログラムをJavascriptを使ってみた続きです。 職場のPCがまさかのIE8をブラウザとしていて、canvasタグが使えない問題が発生したため、pタグを色分けしてinline-blockを指定 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://officevba.info/javascriptbarcodemaker/">以前のバーコードを作るプログラムをJavascriptを使ってみた</a>続きです。
職場のPCがまさかのIE8をブラウザとしていて、canvasタグが使えない問題が発生したため、pタグを色分けしてinline-blockを指定して順に並べるプログラムに変更しています。
他にはチェックデジットの計算方法にエラーがあり修正しました。</p>
<p>JANコードを入力するとバーコードが大小2種類表示されます。</p>
<p>今回のバーコード表示は通常印刷では表示されません。プリントスクリーンで画像を貼り付けて印刷する仕様になっています。</p>
<p>前回のバーコード作成方法について、Webページを印刷するとあまりキレイに印刷できないためかバーコードがきちんと読めない問題点もありました。
解決方法として一度PDFに出力して紙に印刷したりしていましたが、今回印刷で表示されなくなったことはプリントスクリーンでの印刷を徹底できるという意味では逆に好都合だったかもしれません。</p>
<p>また機会があればPDF出力にも対応した表示ができるように改良します。</p>

<div class="VBACode">


<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
	function JAN作成()
	{
		
		var JANCode=document.getElementById("JANCode");

		var JAN=new Array(13);
		for (i=0;i<=12;i++){
			JAN[i] =JANCode.value.substring(i,i+1);
		}

		//ここからチェックデジットの計算

		var ketasuji=new Array(12);
		for (i=0;i<=11;i++){
			ketasuji[i] =Number(JAN[i]);
		}		
		var kisugokei;
		kisugokei = 0;
		for (i=0;i<=10;i+=2){
			kisugokei=kisugokei+ketasuji[i];
		}
		var gusugokei;
		gusugokei = 0;
		for (i=1;i<=11;i+=2){
			gusugokei = gusugokei + ketasuji[i];
		}
		var gokei;
		gokei = kisugokei + 3*gusugokei;
		var hosu;
		hosu = gokei % 10;
		var checkdegit;
		checkdegit = 10 - hosu;

		if (checkdegit == 10){
			checkdegit = 0;
		}
		
		if (checkdegit != JAN[12]){
			window.confirm("チェックデジットが異なっているので修正します。");
			JAN[12] = checkdegit
			JANCode.value = ""
			for (i=0;i<=12;i++){
				JANCode.value =JANCode.value + JAN[i];
			}		

		}

		//ここからJANの作成

		var leftkisugusu = new Array();
		for (i=0;i<=9;i++){
			leftkisugusu[i] = new Array();
		}
		leftkisugusu[0]=["奇数","奇数","奇数","奇数","奇数","奇数"];
		leftkisugusu[1]=["奇数","奇数","偶数","奇数","偶数","偶数"];
		leftkisugusu[2]=["奇数","奇数","偶数","偶数","奇数","偶数"];
		leftkisugusu[3]=["奇数","奇数","偶数","偶数","偶数","奇数"];
		leftkisugusu[4]=["奇数","偶数","奇数","奇数","偶数","偶数"];
		leftkisugusu[5]=["奇数","偶数","偶数","奇数","奇数","偶数"];
		leftkisugusu[6]=["奇数","偶数","偶数","偶数","奇数","奇数"];
		leftkisugusu[7]=["奇数","偶数","奇数","偶数","奇数","偶数"];
		leftkisugusu[8]=["奇数","偶数","奇数","偶数","偶数","奇数"];
		leftkisugusu[9]=["奇数","偶数","偶数","奇数","偶数","奇数"];

		var leftcode = new Array();
		leftcode["奇数"] = new Array();
		leftcode["偶数"] = new Array();
		leftcode["奇数"] = ["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"];
		leftcode["偶数"] = ["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"];

		var rightcode = new Array("1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100");

		var code01;
		code01="101";
		for (i=0;i<=5;i++){
			code01 = code01+leftcode[leftkisugusu[JAN[0]][i]][JAN[i+1]];
		}
		code01=code01+"01010";
		for (i=6;i<=11;i++){
			code01 = code01+rightcode[JAN[i+1]];
		}
		code01=code01+"101";



		//document.getElementById("BarCode1").style.backgroundColor="#000000";
		
		var bunkaicode = new Array();
		for (i=0;i<=94;i++){
			bunkaicode[i] =code01.substring(i,i+1);
		}
		//alert(bunkaicode[0]);
		
		/* var canvas = document.getElementById("field");
		var ctx = canvas.getContext("2d");
		ctx.strokeStyle = "black";
		ctx.globalCompositeOperation = "source-over";
		for (i=0;i<=94;i++){
			if (bunkaicode[i]==1){
				if (i==0||i==1||i==2||i==92||i==93||i==94||i==45||i==46||i==47||i==48||i==49){
					ctx.fillRect(i, 0, 1, 30);
				}else{
					ctx.fillRect(i, 0, 1, 25);
				}
			}
		} */


		var BarCodeCode;
		var BarCodeCode2;

		BarCodeCode =""
		BarCodeCode2 =""

		for (i=0;i<=94;i++){
			if (bunkaicode[i]==1){
				BarCodeCode = BarCodeCode+ '<p style="background-color:#000000;width:2px;height:60px;margin:0;padding:0;display:inline-block;">';
				BarCodeCode2 = BarCodeCode2+ '<p style="background-color:#000000;width:3px;height:90px;margin:0;padding:0;display:inline-block;">';
			}else{
				BarCodeCode = BarCodeCode+ '<p style="background-color:#ffffff;width:2px;height:60px;margin:0;padding:0;display:inline-block;">';
				BarCodeCode2 = BarCodeCode2+ '<p style="background-color:#ffffff;width:3px;height:90px;margin:0;padding:0;display:inline-block;">';

			}
		}
		var BarCodeCanvas = document.getElementById("field");
		var BarCodeCanvas2 = document.getElementById("field2");

		BarCodeCanvas.innerHTML= BarCodeCode;
		BarCodeCanvas2.innerHTML= BarCodeCode2;

		var BarCode = document.getElementById("BarCode");
		var BarCode2 = document.getElementById("BarCode2");

		BarCode.innerHTML = JANCode.value;
		BarCode2.innerHTML = JANCode.value;

		var hinmeihyoji = document.getElementById("hinmeihyoji");
		var hinmeihyoji2 = document.getElementById("hinmeihyoji2");
		var hinmei = document.getElementById("hinmei");

		hinmeihyoji.innerHTML= hinmei.value;
		hinmeihyoji2.innerHTML= hinmei.value;


	}
</script>


</head>
<body>
<form>
<div style="display:table;">
<div style="display:table-row;">
<p style="display:table-cell;">品名</p>
<p style="display:table-cell;"><input id ="hinmei" type="text" size="20" style="ime-mode:active"><br /></p>
</div>
<div style="display:table-row;">
<p style="display:table-cell;"><br /></p>
<p style="display:table-cell;"><br /></p>
<p style="display:table-cell;"><br /></p>
</div>
<div style="display:table-row;">
<p style="display:table-cell;">JANコード</p>
<p style="display:table-cell;"><input id ="JANCode" type="text" size="20" style="ime-mode:inactive"></p>
<p style="display:table-cell;"><input id ="表示" type="button" value="表示" onClick="JAN作成()"></p>
</div>
</div>
</form>
<br />


<span id="field" style="margin:0;padding:0;height:60px;"></span><br />
<span id="BarCode" style="margin:0;padding:0;height:16px;"></span><br />
<span id="hinmeihyoji" style="margin:0;padding:0;height:16px;"></span><br />
<br />
<span id="field2" style="margin:0;padding:0;height:90px;"></span><br />
<span id="BarCode2" style="margin:0;padding:0;height:16px;"></span><br />
<span id="hinmeihyoji2" style="margin:0;padding:0;height:16px;"></span><br />

<br /><br />
<span id="howtouse">使い方<br /><br />
1. 空欄に品名とJANを入れて表示をクリックする。<br />
2. 画面全体を印刷する。</span><br /><br />
<span id="chuiten">注意点<br /><br />
1. 13桁のJANのみ使用できます。<br />
2. 印刷はRICOHのレーザープリンターを使う方がきちんと認識できるようです。<br />
3. チェックデジット（最後の一桁）が誤っている場合や空欄の場合は自動修正します。<br /></span><br />
</body>
</html>
]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/javascriptbarcodemaker2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Javascriptでバーコードを手作りする</title>
		<link>https://officevba.info/javascriptbarcodemaker/</link>
					<comments>https://officevba.info/javascriptbarcodemaker/#respond</comments>
		
		<dc:creator><![CDATA[okumasahito]]></dc:creator>
		<pubDate>Sun, 21 Aug 2016 03:56:46 +0000</pubDate>
				<category><![CDATA[BarCode作成]]></category>
		<category><![CDATA[Javascript]]></category>
		<guid isPermaLink="false">http://officevba.info/?p=560</guid>

					<description><![CDATA[仕事でVBAを使えない環境でバーコードを作るプログラムを作成する必要があり、初めてJavascriptを使ってみました。 VBAやマクロとは全く関係ないですが、情報をここに記録しておきます。 コードを入力して表示ボタンを [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>仕事でVBAを使えない環境でバーコードを作るプログラムを作成する必要があり、初めてJavascriptを使ってみました。
VBAやマクロとは全く関係ないですが、情報をここに記録しておきます。</p>
<p>コードを入力して表示ボタンをクリックするとバーコードが表示されるプログラムです。
バーコードの表示の法則は<a rel="noopener" href="http://www5d.biglobe.ne.jp/~bar/index.html" target="_blank">バーコードの作成</a>というサイトを参考にしました。</p>

<div class="VBACode">

<script type="text/javascript">
	function JAN作成()
	{
		
		var JANCode=document.getElementById("JANCode");

		var Path;
		Path="C:\Users\雅仁\Desktop\JAN\";

		var JAN=new Array(13);
		for (i=0;i<=12;i++){
			JAN[i] =JANCode.value.substring(i,i+1);
		}

		//ここからチェックデジットの計算

		var ketasuji=new Array(12);
		for (i=0;i<=11;i++){
			ketasuji[i] =Number(JAN[i]);
		}		
		var kisugokei;
		kisugokei = 0;
		for (i=0;i<=10;i+=2){
			kisugokei=kisugokei+ketasuji[i];
		}
		var gusugokei;
		gusugokei = 0;
		for (i=1;i<=11;i+=2){
			gusugokei = gusugokei + ketasuji[i];
		}
		var gokei;
		gokei = kisugokei + 3*gusugokei;
		var hosu;
		hosu = gokei % 10;
		var checkdegit;
		checkdegit = 10 - hosu;
		
		if (checkdegit != JAN[12]){
			window.confirm("チェックデジットが異なっているので修正します。");
			JAN[12] = checkdegit
			JANCode.value = ""
			for (i=0;i<=12;i++){
				JANCode.value =JANCode.value + JAN[i];
			}		

		}

		//ここからJANの作成

		var leftkisugusu = new Array();
		for (i=0;i<=9;i++){
			leftkisugusu[i] = new Array();
		}
		leftkisugusu[0]=["奇数","奇数","奇数","奇数","奇数","奇数"];
		leftkisugusu[1]=["奇数","奇数","偶数","奇数","偶数","偶数"];
		leftkisugusu[2]=["奇数","奇数","偶数","偶数","奇数","偶数"];
		leftkisugusu[3]=["奇数","奇数","偶数","偶数","偶数","奇数"];
		leftkisugusu[4]=["奇数","偶数","奇数","奇数","偶数","偶数"];
		leftkisugusu[5]=["奇数","偶数","偶数","奇数","奇数","偶数"];
		leftkisugusu[6]=["奇数","偶数","偶数","偶数","奇数","奇数"];
		leftkisugusu[7]=["奇数","偶数","奇数","偶数","奇数","偶数"];
		leftkisugusu[8]=["奇数","偶数","奇数","偶数","偶数","奇数"];
		leftkisugusu[9]=["奇数","偶数","偶数","奇数","偶数","奇数"];

		var leftcode = new Array();
		leftcode["奇数"] = new Array();
		leftcode["偶数"] = new Array();
		leftcode["奇数"] = ["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"];
		leftcode["偶数"] = ["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"];

		var rightcode = new Array("1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100");

		var code01;
		code01="101";
		for (i=0;i<=5;i++){
			code01 = code01+leftcode[leftkisugusu[JAN[0]][i]][JAN[i+1]];
		}
		code01=code01+"01010";
		for (i=6;i<=11;i++){
			code01 = code01+rightcode[JAN[i+1]];
		}
		code01=code01+"101";
		//BarCode.innerHTML= code01;
		BarCode.innerHTML= JANCode.value;
		//document.getElementById("BarCode1").style.backgroundColor="#000000";
		
		var bunkaicode = new Array();
		for (i=0;i<=94;i++){
			bunkaicode[i] =code01.substring(i,i+1);
		}
		//alert(bunkaicode[0]);
		
		var canvas = document.getElementById("field");
		var ctx = canvas.getContext("2d");
		ctx.strokeStyle = "black";
		ctx.globalCompositeOperation = "source-over";
		for (i=0;i<=94;i++){
			if (bunkaicode[i]==1){
				if (i==0||i==1||i==2||i==92||i==93||i==94||i==45||i==46||i==47||i==48||i==49){
					ctx.fillRect(i, 0, 1, 30);
				}else{
					ctx.fillRect(i, 0, 1, 25);
				}
			}
		}
	}
</script>


<form>
<input id ="JANCode" type="text" style ="width:300px;">
<input id ="表示" type="button" value="表示" onClick="JAN作成()">
</form>
<span id="BarCode"></span><br />
<canvas id="field"></canvas><br /><br />
<span id="howtouse">使い方<br /><br />1. 空欄にJANを入れて表示をクリックする。<br />2. 画面全体を印刷する。</span><br /><br />
<span id="chuiten">注意点<br /><br />1. 13桁のJANのみ使用できます。<br />2. 連続で作成するときは1回ずつファイルを開きなおしてください。
<br />3. チェックデジット（最後の一桁）が誤っている場合や空欄の場合は自動修正します。<br /></span><br />

</div>

<p>追加で改良を加えました。チェックデジットの計算修正、IE8のcanvasタグが表示されない問題への対応を行いました。
代わりに通常の印刷では表示されないので、プリントスクリーンで画像を印刷する仕様になりました。
<a href="https://officevba.info/javascriptbarcodemaker2/">こちらのページ</a>を参照してください。</p>]]></content:encoded>
					
					<wfw:commentRss>https://officevba.info/javascriptbarcodemaker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
