<?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>google spreadsheet | nujonoa_blog</title>
	<atom:link href="https://nujonoa.com/category/%E4%BB%95%E4%BA%8B%E9%96%A2%E9%80%A3/google-spreadsheet/feed/" rel="self" type="application/rss+xml" />
	<link>https://nujonoa.com</link>
	<description>人生に役立つデータ集</description>
	<lastBuildDate>Tue, 30 Apr 2024 08:17:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://nujonoa.com/wp-content/uploads/2019/04/cropped-DSC00976-e1554456145409-32x32.jpg</url>
	<title>google spreadsheet | nujonoa_blog</title>
	<link>https://nujonoa.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【GAS】3行(N行)ずつのデータを1行にまとめるGAS</title>
		<link>https://nujonoa.com/combine-three-lines-of-data-into-one-line/</link>
					<comments>https://nujonoa.com/combine-three-lines-of-data-into-one-line/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Tue, 30 Apr 2024 08:17:17 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<guid isPermaLink="false">https://nujonoa.com/?p=24199</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[
<p></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function combineRowsFromFourthSheetOnwards() {
  // まとめ先のシート名
  var combinedSheetName = &quot;結果&quot;;
  var combinedSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(combinedSheetName);
  
  // まとめ先のシートが存在しない場合は新規作成
  if (!combinedSheet) {
    combinedSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet(combinedSheetName);
  }
  
  // まとめ先のシートにヘッダーを追加
  var headers = &#x5B;&quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;, &quot;目次1&quot;];
  combinedSheet.appendRow(headers);
  
  // シートの数
  var numSheets = SpreadsheetApp.getActiveSpreadsheet().getNumSheets();
  
  // 4番目以降のシートからデータを取得してまとめる
  for (var i = 3; i &lt; numSheets; i++) {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()&#x5B;i];
    var lastRow = sheet.getLastRow();
    var lastColumn = sheet.getLastColumn();
    var dataToCombine = &#x5B;];
    
    // 3行ごとのデータを1行にまとめる
    for (var j = 1; j &lt;= lastRow; j += 3) {
      var range = sheet.getRange(j, 1, 3, lastColumn);
      var values = range.getValues();
      var combinedRow = &#x5B;];
      
      // 取得した3行のデータを1行にまとめる
      values.forEach(function(row) {
        combinedRow = combinedRow.concat(row);
      });
      
      // まとめたデータを配列に追加
      dataToCombine.push(combinedRow);
    }
    
    // まとめたデータをまとめ先のシートに一気に書き込む
    combinedSheet.getRange(combinedSheet.getLastRow() + 1, 1, dataToCombine.length, dataToCombine&#x5B;0].length).setValues(dataToCombine);
  }
}
</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/combine-three-lines-of-data-into-one-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【完全無料】スプレッドシートでコールセンター受付システムを作成してみた！</title>
		<link>https://nujonoa.com/%e3%80%90%e5%ae%8c%e5%85%a8%e7%84%a1%e6%96%99%e3%80%91%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%83%89%e3%82%b7%e3%83%bc%e3%83%88%e3%81%a7%e3%82%b3%e3%83%bc%e3%83%ab%e3%82%bb%e3%83%b3%e3%82%bf%e3%83%bc/</link>
					<comments>https://nujonoa.com/%e3%80%90%e5%ae%8c%e5%85%a8%e7%84%a1%e6%96%99%e3%80%91%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%83%89%e3%82%b7%e3%83%bc%e3%83%88%e3%81%a7%e3%82%b3%e3%83%bc%e3%83%ab%e3%82%bb%e3%83%b3%e3%82%bf%e3%83%bc/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Mon, 15 Apr 2024 03:00:00 +0000</pubDate>
				<category><![CDATA[google spreadsheet]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[QUERY]]></category>
		<category><![CDATA[データベース]]></category>
		<category><![CDATA[顧客情報]]></category>
		<guid isPermaLink="false">https://nujonoa.com/?p=24180</guid>

					<description><![CDATA[目次 【完全無料】スプレッドシートでコールセンター受付システムを作成してみた！システムサンプルファイルダウンロードできることを画像で説明！このコールセンター受付システムのすごいところ使用した関数、GASのコードなど。まと [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【完全無料】スプレッドシートでコールセンター受付システムを作成してみた！</a></li><li><a href="#toc2" tabindex="0">システム</a></li><li><a href="#toc3" tabindex="0">サンプルファイルダウンロード</a></li><li><a href="#toc4" tabindex="0">できることを画像で説明！</a></li><li><a href="#toc5" tabindex="0">このコールセンター受付システムのすごいところ</a></li><li><a href="#toc6" tabindex="0">使用した関数、GASのコードなど。</a></li><li><a href="#toc7" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【完全無料】スプレッドシートでコールセンター受付システムを作成してみた！</span></h2>



<p class="is-style-question-box">完全無料のスプレッドシートを用いてコールセンターの受付システムは構築できるのか？？？</p>



<p>ということで、顧客情報のデータベースを作成してみました！</p>



<p>結果として、</p>



<p class="is-style-alert-box">・プルダウンをシートの項目と連携可能<br>・gasで計算した結果も含め記載内容をスプレッドシートに転載<br>・メール送付機能あり<br>・サーバーレス。<br>・ウェブアプリで同時書き込み可能<br>・自動でかぶらない案件番号作成可能<br>・重複確認機能あり<br>⇒<span class="marker-animation-2071">これだけできて無料！！！</span></p>



<p>の、素晴らしいものができてしまったので、顧客DBに引き続き、、公開したいと思います。</p>



<p><s><span class="marker-animation-2074">こちらも正直、10万円以上の価値があると思います。</span></s></p>



<p>是非参考にしてみてください！！</p>



<h2 class="wp-block-heading"><span id="toc2">システム</span></h2>



<p>ウェブアプリのシステムは、下記リンクから参照ください。</p>




<a rel="noopener" target="_blank" href="https://script.google.com/macros/s/AKfycbw5jTKbn0YCHS2HAoMPoB7YqxU3QcPz5J4fXrfbJtdwDJPyger2KQvZUck85hvN_QRV/exec" title="&#12467;&#12540;&#12523;&#12475;&#12531;&#12479;&#12540;&#21463;&#20184;&#12471;&#12473;&#12486;&#12512;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fscript.google.com%2Fmacros%2Fs%2FAKfycbw5jTKbn0YCHS2HAoMPoB7YqxU3QcPz5J4fXrfbJtdwDJPyger2KQvZUck85hvN_QRV%2Fexec?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#12467;&#12540;&#12523;&#12475;&#12531;&#12479;&#12540;&#21463;&#20184;&#12471;&#12473;&#12486;&#12512;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://script.google.com/macros/s/AKfycbw5jTKbn0YCHS2HAoMPoB7YqxU3QcPz5J4fXrfbJtdwDJPyger2KQvZUck85hvN_QRV/exec" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">script.google.com</div></div></div></div></a>



<p>こちらのアプリで入力した内容が、</p>



<p>⇩のスプレッドシートに</p>



<p>反映される形になります。一度適当に入力後、この<a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1PKZSiaLNQX9aXdnZ2eL0fxE6BTTzNqyMCmJm8OkrSOU/edit#gid=1103047838">スプレッドシート<span class="fa fa-external-link external-icon anchor-icon"></span></a>を見てください。</p>



<iframe  width=900 height=400 src="https://docs.google.com/spreadsheets/d/e/2PACX-1vT1j8RuslcTHbfPLjnltTMR7pbeSgeKGnmimzZNVpoeBdD6rSvzd_RAkihOFH24taPiAX7tSRvF0Yo4/pubhtml?gid=1103047838&amp;single=true&amp;widget=true&amp;headers=false"></iframe>



<p><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1PKZSiaLNQX9aXdnZ2eL0fxE6BTTzNqyMCmJm8OkrSOU/edit#gid=1103047838">コールセンターシステムのスプレッドシート<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<h2 class="wp-block-heading"><span id="toc3">サンプルファイルダウンロード</span></h2>



<p>サンプルファイルのダウンロードは下記から行ってください。</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1jTgKMGJH1E2Zq1rfW3JEIa-VLXuFvg4oJPfOHqCmUVM/copy" class="btn btn-m btn-circle btn-shine">サンプルファイルダウンロード<span class="fa fa-external-link external-icon anchor-icon"></span></a></div>



<p>コピーしたうえで、</p>



<p>①Apps Script</p>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-4.png"><img fetchpriority="high" decoding="async" width="792" height="235" src="https://nujonoa.com/wp-content/uploads/2024/04/image-4.png" alt="" class="wp-image-24191" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-4.png 792w, https://nujonoa.com/wp-content/uploads/2024/04/image-4-500x148.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-4-300x89.png 300w, https://nujonoa.com/wp-content/uploads/2024/04/image-4-768x228.png 768w" sizes="(max-width: 792px) 100vw, 792px" /></a></figure>



<p>②ウェブアプリ.gsの★★★★★をスプレッドシートのIDにおきかえて</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
var spreadsheetId = '★★★★★';//ここにスプレッドシートのIDを入れてください。
</pre></div>


<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-5.png"><img loading="lazy" decoding="async" width="900" height="244" src="https://nujonoa.com/wp-content/uploads/2024/04/image-5-900x244.png" alt="" class="wp-image-24192" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-5-900x244.png 900w, https://nujonoa.com/wp-content/uploads/2024/04/image-5-500x135.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-5-300x81.png 300w, https://nujonoa.com/wp-content/uploads/2024/04/image-5-768x208.png 768w, https://nujonoa.com/wp-content/uploads/2024/04/image-5.png 934w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-7.png"><img loading="lazy" decoding="async" width="765" height="30" src="https://nujonoa.com/wp-content/uploads/2024/04/image-7.png" alt="" class="wp-image-24194" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-7.png 765w, https://nujonoa.com/wp-content/uploads/2024/04/image-7-500x20.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-7-300x12.png 300w" sizes="(max-width: 765px) 100vw, 765px" /></a></figure>



<p>※IDはこの部分になります。</p>



<p>③デプロイから、ウェブアプリとしてデプロイしてください。<br>　すると、URLが発行され、ウェブアプリが使えるようになります。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-8.png"><img loading="lazy" decoding="async" width="900" height="635" src="https://nujonoa.com/wp-content/uploads/2024/04/image-8-900x635.png" alt="" class="wp-image-24195" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-8-900x635.png 900w, https://nujonoa.com/wp-content/uploads/2024/04/image-8-500x353.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-8-300x212.png 300w, https://nujonoa.com/wp-content/uploads/2024/04/image-8-768x542.png 768w, https://nujonoa.com/wp-content/uploads/2024/04/image-8.png 1053w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc4">できることを画像で説明！</span></h2>



<p>まずは、できることを動画を用いて説明していきたいと思います。</p>



<p>動画を見ていただいてわかる通り、<br>①スプレッドシートの項目からプルダウン項目が選択され、<br>②順次入力<br>③入力完了すると、スプレッドシートに転機される。</p>



<figure class="wp-block-video"><video controls src="https://nujonoa.com/wp-content/uploads/2024/04/2024-04-16_14h17_41.mp4"></video></figure>



<p>という、内容になっています。</p>



<p>これが自社サーバーとかを持たず、ただただグーグルアカウントがあるだけで構築できるということになります。</p>



<p>画像で説明すると下記のイメージで、<br>①スプレッドシートの内容を変更することで、プルダウンを簡単に変更でき、<br>②プルダウンのプルダウンも作成可能です。<br>(依頼分野が、エアコンなら壊れた、冷えない、洗濯機なら水漏れなど、一つ目のプルダウンから2つ目のプルダウンが自動で絞られる。）<br>③メールアドレスを登録しておけば、メール送付も可能。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-1.png"><img loading="lazy" decoding="async" width="900" height="521" src="https://nujonoa.com/wp-content/uploads/2024/04/image-1-900x521.png" alt="" class="wp-image-24185" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-1-900x521.png 900w, https://nujonoa.com/wp-content/uploads/2024/04/image-1-500x289.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-1-300x174.png 300w, https://nujonoa.com/wp-content/uploads/2024/04/image-1-768x445.png 768w, https://nujonoa.com/wp-content/uploads/2024/04/image-1-1536x889.png 1536w, https://nujonoa.com/wp-content/uploads/2024/04/image-1-120x68.png 120w, https://nujonoa.com/wp-content/uploads/2024/04/image-1.png 1731w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<p>④メールは下記の通り、記載した内容を送付</p>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-2.png"><img loading="lazy" decoding="async" width="330" height="532" src="https://nujonoa.com/wp-content/uploads/2024/04/image-2.png" alt="" class="wp-image-24186" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-2.png 330w, https://nujonoa.com/wp-content/uploads/2024/04/image-2-300x484.png 300w" sizes="(max-width: 330px) 100vw, 330px" /></a></figure>



<p>⑤電話番号からデータの重複を確認し、重複がある場合は、<br>自動で以前記載した内容が、重複欄に表示されるようになっています。</p>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2024/04/image-3.png"><img loading="lazy" decoding="async" width="678" height="842" src="https://nujonoa.com/wp-content/uploads/2024/04/image-3.png" alt="" class="wp-image-24187" srcset="https://nujonoa.com/wp-content/uploads/2024/04/image-3.png 678w, https://nujonoa.com/wp-content/uploads/2024/04/image-3-500x621.png 500w, https://nujonoa.com/wp-content/uploads/2024/04/image-3-300x373.png 300w" sizes="(max-width: 678px) 100vw, 678px" /></a></figure>



<h2 class="wp-block-heading"><span id="toc5">このコールセンター受付システムのすごいところ</span></h2>



<p>このコールセンター受付システムのすごいところは、</p>



<p>①なんといっても無料。<br>②データがスプレッドシートに残るのでその後の処理が簡単。<br>③Gメールも送れる。<br>④メールのやり取りを、このデータに連携することが可能。</p>



<p>などなど本当に完全無料でできます。。<br>ビジネスなど月額料金を払わなくてもできてしまいます。</p>



<p>怖いです。ほんと。</p>



<h2 class="wp-block-heading"><span id="toc6">使用した関数、GASのコードなど。</span></h2>



<p>順次更新していきます。</p>



<h2 class="wp-block-heading"><span id="toc7">まとめ</span></h2>



<p>スプレッドシートを用いてウェブアプリを構築していきましたが、<br>正直言ってここまでの完成度で作成できるとは思っていませんでした。。</p>



<p>特に実際にコールセンターで使っていただいている企業さんと相談しながら作り上げたものなので、<br>かゆいところにも手が届く状態になっていると思います。<br>毎日100件以上の処理をしてもらっていますが、不具合なく運用していただいております。</p>



<p>システムにとらわれず、プルダウンの項目を増やしていったり、<br>自分で自由に変更、更新できるところが<br>かなりユーザーには嬉しい内容ではないかな？と思います。</p>



<p>エクセルではできないことが多々ありますし、<br>これから5Gで処理速度が追い付いてくると、<br>すべてスプレッドシートに置き換わる日も遠くないかもしれませんね。</p>



<p>各種DB、コールセンター受付システムの作成依頼あればお気持ち程度のお金で承りますので、<br>コメント欄(メールアドレス必須)に書き込んでいただければと思います！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/%e3%80%90%e5%ae%8c%e5%85%a8%e7%84%a1%e6%96%99%e3%80%91%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%83%89%e3%82%b7%e3%83%bc%e3%83%88%e3%81%a7%e3%82%b3%e3%83%bc%e3%83%ab%e3%82%bb%e3%83%b3%e3%82%bf%e3%83%bc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://nujonoa.com/wp-content/uploads/2024/04/2024-04-16_14h17_41.mp4" length="10190231" type="video/mp4" />

			</item>
		<item>
		<title>gasでセルの一覧からファイル一覧を作成する方法</title>
		<link>https://nujonoa.com/how-to-create-a-file-list-from-a-list-of-cells-with-gas/</link>
					<comments>https://nujonoa.com/how-to-create-a-file-list-from-a-list-of-cells-with-gas/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Tue, 26 Mar 2024 01:42:09 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<category><![CDATA[未分類]]></category>
		<category><![CDATA[ファイル]]></category>
		<category><![CDATA[作成]]></category>
		<category><![CDATA[フォルダ]]></category>
		<guid isPermaLink="false">https://nujonoa.com/?p=24169</guid>

					<description><![CDATA[gasでセルの一覧からファイル一覧を作成する方法 c列の名前一覧からファイルを作り、特定のフォルダに保存。d列にそのリンクを追加するプログラムです。 適宜シート名、フォルダID、列を変更して使用ください。]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">gasでセルの一覧からファイル一覧を作成する方法</h2>



<p>c列の名前一覧からファイルを作り、特定のフォルダに保存。<br>d列にそのリンクを追加するプログラムです。<br><br>適宜シート名、フォルダID、列を変更して使用ください。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function createSpreadsheetFromColumnC() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1'); // シート名を適宜変更してください
  var folder = DriveApp.getFolderById('FolderID'); // フォルダIDを適宜変更してください

  var range = sheet.getRange('C:C'); // C列の範囲を取得
  var values = range.getValues(); // C列の値を取得

  for (var i = 0; i &lt; values.length; i++) {
    var fileName = values&#x5B;i]&#x5B;0];
    if (fileName !== '') { // ファイル名が空でない場合
      var newSpreadsheet = SpreadsheetApp.create(fileName); // ファイル名で新しいスプレッドシートを作成
      var fileId = newSpreadsheet.getId(); // 新しいスプレッドシートのIDを取得

      // 新しいスプレッドシートの親フォルダを変更して移動
      var file = DriveApp.getFileById(fileId); // 新しいスプレッドシートを取得
      var newFile = file.moveTo(folder); // 新しいスプレッドシートを指定のフォルダに移動
      
      // スプレッドシートのリンクを取得してD列に書き込む
      var spreadsheetLink = SpreadsheetApp.openById(newFile.getId()).getUrl();
      sheet.getRange('D' + (i + 1)).setValue(spreadsheetLink);
    }
  }
}

</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-create-a-file-list-from-a-list-of-cells-with-gas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>gmailの(受信数の多い)不要メールを一括削除するプログラム</title>
		<link>https://nujonoa.com/batch-delete-unwanted-emails-with-a-large-number-of-received-gmail/</link>
					<comments>https://nujonoa.com/batch-delete-unwanted-emails-with-a-large-number-of-received-gmail/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 12:13:52 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=23540</guid>

					<description><![CDATA[今までどれだけ無駄使いしてきたかな～。。 ということで、今回は「GMAILの不要なメール」を検索するプログラムを作成しましたので、展開していきたいと思います！ 目次 gmailの不要メールを一括削除(検索)するプログラム [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今までどれだけ無駄使いしてきたかな～。。</p>



<p>ということで、今回は「GMAILの不要なメール」を検索するプログラムを作成しましたので、<br>展開していきたいと思います！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">gmailの不要メールを一括削除(検索)するプログラム</a></li><li><a href="#toc2" tabindex="0">どんなことが出来るの？</a></li><li><a href="#toc3" tabindex="0">出来ること</a></li><li><a href="#toc4" tabindex="0">プログラム展開</a><ol><li><a href="#toc5" tabindex="0">承認方法</a><ol><ol><ol><li><a href="#toc6" tabindex="0">プログラムの承認を続行</a></li><li><a href="#toc7" tabindex="0">アカウントを選択</a></li><li><a href="#toc8" tabindex="0">左下の灰色の小さい「詳細」をクリック</a></li><li><a href="#toc9" tabindex="0">○○(安全ではないページ)に移動をクリック</a></li><li><a href="#toc10" tabindex="0">許可をクリック</a></li></ol></li></ol></li></ol></li></ol></li><li><a href="#toc11" tabindex="0">プログラム紹介</a><ol><li><a href="#toc12" tabindex="0">プログラム①</a></li><li><a href="#toc13" tabindex="0">プログラム②</a></li></ol></li><li><a href="#toc14" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">gmailの不要メールを一括削除(検索)するプログラム</span></h2>



<p>gmailの容量が10GBを超えてきて、さすがに、過去のメール、いらないメールを消していかないといけないな。</p>



<p>ということで、</p>



<p>gmailの不要メールを一括で検索⇒削除するプログラムを作成しました！</p>



<p>これのおかげで5GBまでとりあえず減らすことが出来ましたので、皆様も一度お試しください。</p>



<h2 class="wp-block-heading"><span id="toc2">どんなことが出来るの？</span></h2>



<p>できることは、</p>



<p>プログラム①</p>



<p>・受信数の多い受信先の一覧を作成</p>



<p>プログラム②</p>



<p>・受信先一覧より、不要なメールを削除</p>



<p>と、いう流れになります。</p>



<p>実際には、</p>



<p>プログラム①で、<br>・上位3000件のスレッドを検索　、受信数の多い順に並び替える</p>



<p>↓</p>



<p>手作業で、<br>・消したいメールのフラグを設定</p>



<p>プログラム②で、<br>・一括削除</p>



<p>という流れになります。</p>



<p>また、いつからのメールを検索するかを設定することもできます。</p>



<h2 class="wp-block-heading"><span id="toc3">出来ること</span></h2>



<p>下記の通り、</p>



<p>検索対象の日付より前のメールを3000件並べ、<br>受信数の多い順番で、アドレスを並び替えます。</p>



<p>これで、受信数の多いメルマガなどを判断することができます。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-35.png"><img loading="lazy" decoding="async" width="900" height="339" src="https://nujonoa.com/wp-content/uploads/2022/09/image-35-900x339.png" alt="" class="wp-image-23567" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-35-900x339.png 900w, https://nujonoa.com/wp-content/uploads/2022/09/image-35-500x188.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-35-300x113.png 300w, https://nujonoa.com/wp-content/uploads/2022/09/image-35-768x289.png 768w, https://nujonoa.com/wp-content/uploads/2022/09/image-35.png 1442w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<p>さらに、削除フラグを立てたアドレスのメールを削除していきます。</p>



<p>消す期間も選ぶことができます。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-37.png"><img loading="lazy" decoding="async" width="900" height="269" src="https://nujonoa.com/wp-content/uploads/2022/09/image-37-900x269.png" alt="" class="wp-image-23569" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-37-900x269.png 900w, https://nujonoa.com/wp-content/uploads/2022/09/image-37-500x149.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-37-300x90.png 300w, https://nujonoa.com/wp-content/uploads/2022/09/image-37-768x229.png 768w, https://nujonoa.com/wp-content/uploads/2022/09/image-37.png 1216w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<h2 class="wp-block-heading"><span id="toc4">プログラム展開</span></h2>



<p>実際のプログラムは下記のとおりです。</p>



<p>↓よりプログラムをコピーしてお使いください。</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1egLXGdByhE46P7kmQ7g6mn7_rpr-S_MkYN2h182J1hA/copy" class="btn btn-l btn-circle">プログラムをコピーして使う<span class="fa fa-external-link external-icon anchor-icon"></span></a></div>



<p>プログラムの実行には承認が必要です。<br>下記の通り、プログラムの承認をお願いいたします。</p>



<h3 class="wp-block-heading"><span id="toc5">承認方法</span></h3>



<p>実行を押す。</p>



<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow">
<h6 class="wp-block-heading"><span id="toc6">プログラムの承認を続行</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png"><img loading="lazy" decoding="async" width="479" height="142" src="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png" alt="" class="wp-image-23530" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png 479w, https://nujonoa.com/wp-content/uploads/2022/09/image-19-300x89.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc7">アカウントを選択</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png"><img loading="lazy" decoding="async" width="604" height="559" src="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png" alt="" class="wp-image-23551" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png 604w, https://nujonoa.com/wp-content/uploads/2022/09/image-27-500x463.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-27-300x278.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc8">左下の灰色の小さい「詳細」をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png"><img loading="lazy" decoding="async" width="604" height="560" src="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png" alt="" class="wp-image-23554" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png 604w, https://nujonoa.com/wp-content/uploads/2022/09/image-30-500x464.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-30-300x278.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc9">○○(安全ではないページ)に移動をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png"><img loading="lazy" decoding="async" width="605" height="563" src="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png" alt="" class="wp-image-23553" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png 605w, https://nujonoa.com/wp-content/uploads/2022/09/image-29-500x465.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-29-300x279.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc10">許可をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png"><img loading="lazy" decoding="async" width="598" height="758" src="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png" alt="" class="wp-image-23555" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png 598w, https://nujonoa.com/wp-content/uploads/2022/09/image-31-500x634.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-31-300x380.png 300w" sizes="(max-width: 598px) 100vw, 598px" /></a></figure>
</div>



<h2 class="wp-block-heading"><span id="toc11">プログラム紹介</span></h2>



<h3 class="wp-block-heading"><span id="toc12">プログラム①</span></h3>



<p>MailRist　で、3000件のメールを並べ<br>TYOFUKU　で、重複を削除、多い順に並び替えています。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">

function myFunction2() {

  var book = SpreadsheetApp.getActiveSpreadsheet()
  var sheet1 = book.getSheetByName(&quot;メール確認&quot;)

  book.toast(&quot;対象メール検索中　※少々時間がかかります。&quot;, &quot;実行中&quot;, -1)

  const datebefore = Utilities.formatDate(sheet1.getRange(1, 3).getValue(), 'Asia/Tokyo', 'yyyy/MM/dd');

  dateA = MailRist(datebefore, 1)

  sheet1.getRange(1, 2).setValue(dateA);

  TYOFUKU

}


function TYOFUKU() {

  var book = SpreadsheetApp.getActiveSpreadsheet()
  var sheet1 = book.getSheetByName(&quot;メール確認&quot;)

  sheet1.getRange(3, 7, 5000, 1).setValues(sheet1.getRange(3, 2, 5000, 1).getValues());

  sheet1.getRange(3, 7, 5000, 1).removeDuplicates(&#x5B;7]);

  sheet1.getRange(3, 6, 5000, 3).sort({ column: 6, ascending: false });

}

function MailRist(datebefore, j) {

  var book = SpreadsheetApp.getActiveSpreadsheet()
  var sheet1 = book.getSheetByName(&quot;メール確認&quot;)

  book.toast((j - 1) * 500 + '~' + j * 500 + &quot;対象メール検索中　※少々時間がかかります。&quot;, &quot;実行中&quot;, -1)

  var findkey = &quot;before:&quot; + datebefore
  var kensakukekka = GmailApp.search(findkey, 0, 500);
  var Msg = GmailApp.getMessagesForThreads(kensakukekka);//二次元配列

  var OutputMsg = &#x5B;];
  var maxc = 0;

  book.toast(&quot;findkey&quot;, 5, 5)

  /* 各メールから日時、送信元、件名、内容を取り出す */
  for (var i = 0; i &lt; Msg.length; i++) {


    var date2 = Msg&#x5B;i]&#x5B;0].getDate();
    var from = Msg&#x5B;i]&#x5B;0].getFrom();
    var subj = Msg&#x5B;i]&#x5B;0].getSubject();
    /*var body = Msg&#x5B;i]&#x5B;0].getBody().slice(0,100000);*/
    var perm = kensakukekka&#x5B;i].getPermalink();

    var S_num = from.indexOf('&lt;');
    var E_num = from.indexOf('&gt;');

    var from2 = from.substring(S_num + 1, E_num);

    OutputMsg.unshift(&#x5B;from, from2, subj, perm])

  }

  date2.setDate(date2.getDate() - 1);
  datebefore = Utilities.formatDate(date2, 'Asia/Tokyo', 'yyyy/MM/dd');
  console.log('日付' + datebefore)



  for (var i = 0; i &lt; OutputMsg.length; i++) {
    var cn = OutputMsg&#x5B;i].length
    if (cn &gt; maxc) { maxc = cn }
  }

  for (var i = 0; i &lt; OutputMsg.length; i++) {
    OutputMsg&#x5B;i].length = maxc
  }

  console.log(OutputMsg.length, j)

  if (Msg.length &gt; 0) {
    var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('メール確認');
    mySheet.getRange(3 + 500 * (j - 1), 1, OutputMsg.length, maxc).setValues(OutputMsg);
    j = j + 1
    if (j === 8) {
      return date2;
    }
  }

  MailRist(datebefore, j)

  Browser.msgBox(&quot;完了&quot;)

}
</pre></div>


<h3 class="wp-block-heading"><span id="toc13">プログラム②</span></h3>



<p>フラグがたっているところのアドレスを消しています。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function deleteGmail() {

  var book = SpreadsheetApp.getActiveSpreadsheet()
  var sheet1 = book.getSheetByName(&quot;メール確認&quot;)

  const datebefore = Utilities.formatDate(sheet1.getRange(2, 12).getValue(), 'Asia/Tokyo', 'yyyy/MM/dd');

  var lastY = sheet1.getRange(sheet1.getMaxRows(), 10).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();

  console.log(lastY)

  for (var i = 3; i &lt;= lastY; i++) {
    if (sheet1.getRange(i, 10).getValue() === 1) {
      var deleteAddress = sheet1.getRange(i, 7).getValue();
      var conditions = &quot;before:&quot; + datebefore + 'from:' + deleteAddress + ''
      var deleteThreads = GmailApp.search(conditions)
      Logger.log(&quot;メールは全部で &quot; + deleteThreads.length + &quot; 通です！&quot;)
      Logger.log(&quot;削除を開始します&quot;)
      //　検索したとき複数で返すのでそれをfor文でループで回しています。
      for (var j = 0; j &lt; deleteThreads.length; j++) {
        // ここで削除しています
        deleteThreads&#x5B;j].moveToTrash();
        //  book.toast(i + 1 + &quot; 通目削除しました : &quot; + &quot;メールは全部で &quot; + deleteThreads.length, deleteAddress, -1)
        //  Logger.log(i + 1 + &quot; 通目削除しました : &quot; + deleteThreads&#x5B;i])
      }
      Logger.log(deleteThreads.length + &quot; 通の削除を完了しました！&quot;)
    }
  }
}
</pre></div>


<h2 class="wp-block-heading"><span id="toc14">まとめ</span></h2>



<p>正直このプログラムを使うより、どんどん消していった方が効率がいいのですが、</p>



<p>「このアドレスから大量にメールが来てる！！」というのが分からないという状況でしたので、<br>このプログラムを作成しました。</p>



<p>ぜひ使ってみてください！！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/batch-delete-unwanted-emails-with-a-large-number-of-received-gmail/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>楽天の購入履歴の一覧作成プログラム！gmailから作成スプレッドシート(エクセル)で作成</title>
		<link>https://nujonoa.com/create-a-list-of-purchase-history/</link>
					<comments>https://nujonoa.com/create-a-list-of-purchase-history/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 00:43:06 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<category><![CDATA[家計の計算]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=23524</guid>

					<description><![CDATA[今までどれだけ無駄使いしてきたかな～。。 ということで、今回は「楽天の購入商品一覧」を作成するプログラムを作成しましたので、展開していきたいと思います！ 目次 楽天の購入商品一覧作成プログラム！Gメールから作成どんなこと [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今までどれだけ無駄使いしてきたかな～。。</p>



<p>ということで、今回は「楽天の購入商品一覧」を作成するプログラムを作成しましたので、<br>展開していきたいと思います！</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">楽天の購入商品一覧作成プログラム！Gメールから作成</a></li><li><a href="#toc2" tabindex="0">どんなことが出来るの？</a></li><li><a href="#toc3" tabindex="0">プログラムを紹介</a><ol><ol><ol><ol><li><a href="#toc4" tabindex="0">プログラムの承認を続行</a></li><li><a href="#toc5" tabindex="0">アカウントを選択</a></li><li><a href="#toc6" tabindex="0">左下の灰色の小さい「詳細」をクリック</a></li><li><a href="#toc7" tabindex="0">○○(安全ではないページ)に移動をクリック</a></li><li><a href="#toc8" tabindex="0">許可をクリック</a></li></ol></li></ol></li></ol></li></ol></li><li><a href="#toc9" tabindex="0">プログラム紹介</a></li><li><a href="#toc10" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">楽天の購入商品一覧作成プログラム！Gメールから作成</span></h2>



<p>楽天の購入商品一覧を作成するプログラムを作成しましたので、<br>皆さんに紹介していきたいと思います！</p>



<p>ただし、今回の方法は、gmailの購入確認メールを検索して一覧を作成するプログラムになりますので、</p>



<p>・gmailで、「注文内容ご確認(自動配信メール)」を受け取っている人限定のプログラムになります。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-18.png"><img loading="lazy" decoding="async" width="900" height="183" src="https://nujonoa.com/wp-content/uploads/2022/09/image-18-900x183.png" alt="" class="wp-image-23529" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-18-900x183.png 900w, https://nujonoa.com/wp-content/uploads/2022/09/image-18-500x102.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-18-300x61.png 300w, https://nujonoa.com/wp-content/uploads/2022/09/image-18-768x156.png 768w, https://nujonoa.com/wp-content/uploads/2022/09/image-18.png 997w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<h2 class="wp-block-heading"><span id="toc2">どんなことが出来るの？</span></h2>



<p>できることは、gmailに来た注文内容のご確認(自動配信メール)を検索し、</p>



<p>・メール受信日<br>・商品名<br>・金額<br>・商品リンク<br>・メールリンク</p>



<p>を、作成できます。</p>



<p>僕の検索結果は下記の通りで、2021/10/10にホースを1,823円で買っていることがわかります。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-24.png"><img loading="lazy" decoding="async" width="900" height="276" src="https://nujonoa.com/wp-content/uploads/2022/09/image-24-900x276.png" alt="" class="wp-image-23535" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-24-900x276.png 900w, https://nujonoa.com/wp-content/uploads/2022/09/image-24-500x153.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-24-300x92.png 300w, https://nujonoa.com/wp-content/uploads/2022/09/image-24-768x236.png 768w, https://nujonoa.com/wp-content/uploads/2022/09/image-24.png 1486w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<p>また、いつからのメールを検索するかを設定することもできます。</p>



<h2 class="wp-block-heading"><span id="toc3">プログラムを紹介</span></h2>



<p>実際のプログラムは下記のとおりです。</p>



<p>↓よりプログラムをコピーしてお使いください。</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1lIL4Z7jMhb7Qcf2dD0rUYvQQ4tYYZD1_Ih0ChQXZMKo/copy" class="btn btn-l btn-circle">プログラムをコピーして使う<span class="fa fa-external-link external-icon anchor-icon"></span></a></div>



<p>プログラムの実行には承認が必要です。<br>下記の通り、プログラムの承認をお願いいたします。</p>



<p>プログラムの実行方法</p>



<p>実行ボタンをクリック</p>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-25.png"><img loading="lazy" decoding="async" width="219" height="95" src="https://nujonoa.com/wp-content/uploads/2022/09/image-25.png" alt="" class="wp-image-23536"/></a></figure>



<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow">
<h6 class="wp-block-heading"><span id="toc4">プログラムの承認を続行</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png"><img loading="lazy" decoding="async" width="479" height="142" src="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png" alt="" class="wp-image-23530" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-19.png 479w, https://nujonoa.com/wp-content/uploads/2022/09/image-19-300x89.png 300w" sizes="(max-width: 479px) 100vw, 479px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc5">アカウントを選択</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png"><img loading="lazy" decoding="async" width="604" height="559" src="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png" alt="" class="wp-image-23551" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-27.png 604w, https://nujonoa.com/wp-content/uploads/2022/09/image-27-500x463.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-27-300x278.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc6">左下の灰色の小さい「詳細」をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png"><img loading="lazy" decoding="async" width="604" height="560" src="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png" alt="" class="wp-image-23554" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-30.png 604w, https://nujonoa.com/wp-content/uploads/2022/09/image-30-500x464.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-30-300x278.png 300w" sizes="(max-width: 604px) 100vw, 604px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc7">○○(安全ではないページ)に移動をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png"><img loading="lazy" decoding="async" width="605" height="563" src="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png" alt="" class="wp-image-23553" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-29.png 605w, https://nujonoa.com/wp-content/uploads/2022/09/image-29-500x465.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-29-300x279.png 300w" sizes="(max-width: 605px) 100vw, 605px" /></a></figure>



<h6 class="wp-block-heading"><span id="toc8">許可をクリック</span></h6>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png"><img loading="lazy" decoding="async" width="598" height="758" src="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png" alt="" class="wp-image-23555" srcset="https://nujonoa.com/wp-content/uploads/2022/09/image-31.png 598w, https://nujonoa.com/wp-content/uploads/2022/09/image-31-500x634.png 500w, https://nujonoa.com/wp-content/uploads/2022/09/image-31-300x380.png 300w" sizes="(max-width: 598px) 100vw, 598px" /></a></figure>
</div>



<p>もう一度実行をクリック</p>



<figure class="wp-block-image size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/09/image-26.png"><img loading="lazy" decoding="async" width="219" height="95" src="https://nujonoa.com/wp-content/uploads/2022/09/image-26.png" alt="" class="wp-image-23537"/></a></figure>



<h2 class="wp-block-heading"><span id="toc9">プログラム紹介</span></h2>



<p>正直、非常に汚いプログラムです。笑</p>



<p>もっときれいに書けるはずです。</p>



<p>また、商品名を取り出すのが難しかったので、無理やりとってます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function MailRist() {

  var book = SpreadsheetApp.getActiveSpreadsheet()
  var sheet1 = book.getSheetByName(&quot;メール確認&quot;)

  //console.log(book);

  book.toast(&quot;対象メール検索中　※少々時間がかかります。&quot;, &quot;実行中&quot;, -1)

  //  Utilities.formatDate( date, 'Asia/Tokyo', 'yyyyMMdd: hhmmss'));

  const dateafter = Utilities.formatDate(sheet1.getRange(1, 2).getValue(), 'Asia/Tokyo', 'yyyy/MM/dd');
  const fr = sheet1.getRange(1, 4).getValue()
//  const KENSU = sheet1.getRange(1, 6).getValue()

  var findkey = &quot;after:&quot; + dateafter + &quot; FROM:&quot; + fr
  var kensakukekka = GmailApp.search(findkey, 0, 500);
  var Msg = GmailApp.getMessagesForThreads(kensakukekka);//二次元配列

  var OutputMsg = &#x5B;];
  var maxc = 0;

  book.toast(&quot;findkey&quot;, 5, 5)

  /* 各メールから日時、送信元、件名、内容を取り出す */
  for (var i = 0; i &lt; Msg.length; i++) {

    if (i % 5 == 0) { book.toast(&quot;スクリプトを実行中です。&quot; + i + &quot;/&quot; + Msg.length, &quot;実行中&quot;, 5) }

    for (var j = 0; j &lt; Msg&#x5B;i].length; j++) {


      var data = Msg&#x5B;i]&#x5B;j].getBody().split(&quot;\n&quot;);
      for (var l = 0; l &lt; data.length; l++) {
        if (data&#x5B;l].indexOf('支払い金額') != -1) {
          var body = data&#x5B;l];

          var S_num = body.indexOf('+1&quot;&gt;&lt;b&gt;');
          var E_num = body.indexOf('（円）');

          var body = body.substring(S_num + 7, E_num);


        }

        if (data&#x5B;l].indexOf('円 x ') != -1) {

          if (data&#x5B;l - 3].indexOf('href') != -1) {
            var date = data&#x5B;l - 3];
          } else if (data&#x5B;l - 4].indexOf('href') != -1) {
            var date = data&#x5B;l - 4];
          } else if (data&#x5B;l - 5].indexOf('href') != -1) {
            var date = data&#x5B;l - 5];
          } else if (data&#x5B;l - 6].indexOf('href') != -1) {
            var date = data&#x5B;l - 6];
          } else if (data&#x5B;l - 7].indexOf('href') != -1) {
            var date = data&#x5B;l - 7];
          } else if (data&#x5B;l - 8].indexOf('href') != -1) {
            var date = data&#x5B;l - 8];
          } else if (data&#x5B;l - 9].indexOf('href') != -1) {
            var date = data&#x5B;l - 9];
          } else if (data&#x5B;l - 10].indexOf('href') != -1) {
            var date = data&#x5B;l - 10];
          } else if (data&#x5B;l - 11].indexOf('href') != -1) {
            var date = data&#x5B;l - 11];
          } else if (data&#x5B;l - 12].indexOf('href') != -1) {
            var date = data&#x5B;l - 12];
          } else {
            var date = data&#x5B;l - 13];
          }

          //console.log(date)
          var S_num = date.indexOf('\&quot;&gt;');
          var E_num = date.indexOf('&lt;/a');

          var data1 = date.substring(S_num + 2, E_num);

          var S_num = date.indexOf('href=');
          var E_num = date.indexOf('style');

          var data2 = date.substring(S_num + 6, E_num - 18);


        }

      }


      //&#x5B;3]データ


      var date2 = Msg&#x5B;i]&#x5B;j].getDate();
      var from = Msg&#x5B;i]&#x5B;j].getFrom();
      var subj = Msg&#x5B;i]&#x5B;j].getSubject();
      /*var body = Msg&#x5B;i]&#x5B;j].getBody().slice(0,100000);*/
      var perm = kensakukekka&#x5B;i].getPermalink();

      OutputMsg.unshift(&#x5B;date2, data1, body, data2, perm])

    }


    //    OutputMsg&#x5B;0] = (&#x5B;subj, perm]).concat(OutputMsg&#x5B;0])

    //&#x5B;date,from,subj,body,perm]
  }

  for (var i = 0; i &lt; OutputMsg.length; i++) {
    var cn = OutputMsg&#x5B;i].length
    if (cn &gt; maxc) { maxc = cn }
  }

  for (var i = 0; i &lt; OutputMsg.length; i++) {
    OutputMsg&#x5B;i].length = maxc
  }

  console.log(OutputMsg.length)

  if (Msg.length &gt; 0) {
    var mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('メール確認');
    mySheet.getRange(3, 1, OutputMsg.length, maxc).setValues(OutputMsg);
  }

  Browser.msgBox(&quot;完了&quot;)

}
</pre></div>


<h2 class="wp-block-heading"><span id="toc10">まとめ</span></h2>



<p>商品名を取ってくるのに少々苦労しましたが、どうにか一覧を作成することが出来ました。</p>



<p>ぜひ、使ってみてください！</p>



<p></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/create-a-list-of-purchase-history/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【GAS】フォルダ内の画像をセル内に挿入する方法！</title>
		<link>https://nujonoa.com/gas-paste-the-image-in-the-cell/</link>
					<comments>https://nujonoa.com/gas-paste-the-image-in-the-cell/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Mon, 25 Apr 2022 10:50:00 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[push]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=13893</guid>

					<description><![CDATA[目次 【GAS】フォルダ内の画像一覧表を作るプログラム！早速プログラムの紹介！コード紹介プログラム内容説明フォルダの中のファイル一覧を取得ファイル一覧から情報を抜き出し、配列に代入setvaluesで書き込み。プログラム [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【GAS】フォルダ内の画像一覧表を作るプログラム！</a></li><li><a href="#toc2" tabindex="0">早速プログラムの紹介！</a></li><li><a href="#toc3" tabindex="0">コード紹介</a></li><li><a href="#toc4" tabindex="0">プログラム内容説明</a><ol><li><a href="#toc5" tabindex="0">フォルダの中のファイル一覧を取得</a></li><li><a href="#toc6" tabindex="0">ファイル一覧から情報を抜き出し、配列に代入</a></li><li><a href="#toc7" tabindex="0">setvaluesで書き込み。</a></li></ol></li><li><a href="#toc8" tabindex="0">プログラムのポイント</a></li><li><a href="#toc9" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【GAS】フォルダ内の画像一覧表を作るプログラム！</span></h2>



<p>GASを用いて、</p>



<p>・スプレッドシートにグーグルドライブのファルダ内のファイルの一覧を作る</p>



<p><span class="marker-animation-2071">・さらに、セル内に画像を挿入する！！</span></p>



<p>プログラムを紹介していきたいと思います！</p>



<h2 class="wp-block-heading"><span id="toc2">早速プログラムの紹介！</span></h2>



<p>早速プログラムを紹介していきたいと思います！</p>



<p>今回作成するプログラムは、下のリンクのものとなっており、</p>



<p>・セル「G2」に入力したドライブのIDをもとに、<br>・ドライブの中のファイル一覧を書き出し、<br>・画像を表示させていくプログラムになります。</p>




<a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1lDZu6dn6HeAfDD317Hz-X0P1_BqYOdqPAB8a-MmGRx8/edit#gid=525857928" title="【公開用】image抜き出し" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://lh7-us.googleusercontent.com/docs/AHkbwyJwouyP75VOnC_07VFHflDzQ5_H9SJx8oHTALlzMJUocy4WvthvyXUdMqm9EAWVy0R5A_fllqFWBFqGQ6pgSb3k5OI88788ZHJchmHUI_78csnh0RRR=w1200-h630-p" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【公開用】image抜き出し</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.google.com/spreadsheets/d/1lDZu6dn6HeAfDD317Hz-X0P1_BqYOdqPAB8a-MmGRx8/edit?usp=embed_facebook" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.google.com</div></div></div></div></a>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="493" height="674" src="https://nujonoa.com/wp-content/uploads/2020/08/image-5.png" alt="" class="wp-image-6706" srcset="https://nujonoa.com/wp-content/uploads/2020/08/image-5.png 493w, https://nujonoa.com/wp-content/uploads/2020/08/image-5-300x410.png 300w" sizes="(max-width: 493px) 100vw, 493px" /><figcaption>プログラム例</figcaption></figure>



<p>プログラムを書くのがめんどくさいという方は、ダウンロードしてまずは使用してみてください。</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>そのままですと閲覧のみ可能になっていますので、<br>ファイル→コピーを作成で、自分のスプレッドシートにコピーを作成してください。</p>



<div class="wp-block-cocoon-blocks-toggle-box-1 toggle-wrap toggle-box block-box"><input id="toggle-checkbox-20200809233634" class="toggle-checkbox" type="checkbox"/><label class="toggle-button" for="toggle-checkbox-20200809233634">スプレッドシートをコピーする方法(クリックして開く)</label><div class="toggle-content">
<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="394" height="781" src="https://nujonoa.com/wp-content/uploads/2020/08/2020-08-09_23h24_07-3.png" alt="" class="wp-image-6679" srcset="https://nujonoa.com/wp-content/uploads/2020/08/2020-08-09_23h24_07-3.png 394w, https://nujonoa.com/wp-content/uploads/2020/08/2020-08-09_23h24_07-3-300x595.png 300w" sizes="(max-width: 394px) 100vw, 394px" /><figcaption>スプレッドシートをコピーする方法</figcaption></figure></div>
</div></div>
</div></div>



<h2 class="wp-block-heading"><span id="toc3">コード紹介</span></h2>



<p>では、今回使用したコードを紹介したいと思います。<br>※ダブルクリックでコピーできます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function getPicID2() {
   
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,1000,4).clearContent()
   
  var Driveid=  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,7).getValue()
   
   
  // フォルダ内のファイルを一括取得
  var files = DriveApp.getFolderById(Driveid).getFiles();  
//  var files = DriveApp.getFolderById(&quot;1EXmXX0jzBONqx4tsKvytHQfxLwhgYy94&quot;).getFiles();
  // 配列を宣言
  var Pic = &#x5B;];
  // 配列に「名前」「URL」「ID」
  while(files.hasNext()) {
    //一括取得したファイルの中から順に一つ取り出す
    var file = files.next();

    if(file.getName().match(/jpg/) ||　file.getName().match(/png/)){
  //ドライブから画像を取得
  var PicID = file.getId()　　　//画像のファイルID
  var blob = DriveApp.getFileById(PicID).getBlob();
 
  //base64に変換
  var c_type = blob.getContentType();
  var base64 = Utilities.base64Encode(blob.getBytes());
  var data = &quot;data:&quot; + c_type + &quot;;base64, &quot; + base64;

  var image = SpreadsheetApp.newCellImage()
                            .setSourceUrl(data)
                            .build();
  }else{
    image=&quot;&quot;
  }

    //「名前」「説明」「URL」をそれぞれ格納
    Pic.push(&#x5B;
      file.getName(),
      file.getUrl(),
      file.getId(),
      &quot;=image(\&quot;https://drive.google.com/uc?id=&quot;+file.getId()+&quot;\&quot;)&quot;,
      image
    ]);
  }
 
  
  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,Pic.length,Pic&#x5B;0].length).setValues(Pic)
   
}

/*
参考URL

<a rel="noopener" target="_blank" href="https://officeforest.org/wp/2019/04/16/google-apps-script%E3%81%A7%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%81%AB%E7%94%BB%E5%83%8F%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B/#i-10" title="Google Apps Scriptでスプレッドシートに画像を貼り付ける【GAS】 | 🌴 officeの杜 🥥" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://officeforest.org/wp/wp-content/uploads/2020/10/spreadsheets-icon.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Google Apps Scriptでスプレッドシートに画像を貼り付ける【GAS】 | 🌴 officeの杜 🥥</div><div class="blogcard-snippet external-blogcard-snippet">年度初めは忙しく、今年度こそこれまで作りためたGASアプリを全公開しようと目論んでいるのですが、GWまでは十分な時間が取れそうにない。そんな時ようの小ネタもいくつか蓄えています。 そんな中、Googleスプレッドシートの機能増強の中で地味な</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://officeforest.org/wp/google-apps-script%e3%81%a7%e3%82%b9%e3%83%97%e3%83%ac%e3%83%83%e3%83%89%e3%82%b7%e3%83%bc%e3%83%88%e3%81%ab%e7%94%bb%e5%83%8f%e3%82%92%e8%b2%bc%e3%82%8a%e4%bb%98%e3%81%91%e3%82%8b%e3%80%90gas/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">officeforest.org</div></div></div></div></a>
*/
</pre></div>


<h2 class="wp-block-heading"><span id="toc4">プログラム内容説明</span></h2>



<p>ではプログラムの詳細を説明していきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">フォルダの中のファイル一覧を取得</span></h3>



<p>①フォルダを指定して(getFolderbyId)、その中のファイルすべてを指定します(getFiles())。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
  var Driveid=  SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,7).getValue()
  
  
  // フォルダ内のファイルを一括取得
  var files = DriveApp.getFolderById(Driveid).getFiles();  
</pre></div>


<h3 class="wp-block-heading"><span id="toc6">ファイル一覧から情報を抜き出し、配列に代入</span></h3>



<p>②ファイルの情報を配列に入れていきます。<br>　・hasNext()でファイルが終わるまで繰り返し、<br>　・Pic.push=([名前,URL,ID,image関数])の4列の配列を積み重ねていきます。<br>　・<a rel="noopener" target="_blank" href="https://officeforest.org/wp/2019/04/16/google-apps-script%E3%81%A7%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88%E3%81%AB%E7%94%BB%E5%83%8F%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%E3%82%8B/#i-10">このリンク先<span class="fa fa-external-link external-icon anchor-icon"></span></a>を参考に、セル内に画像貼り付けできるデータに変換(blob⇒Base64データ)</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
  // 配列を宣言
  var Pic = &#x5B;];
  // 配列に「名前」「URL」「ID」
  while(files.hasNext()) {
    //一括取得したファイルの中から順に一つ取り出す
    var file = files.next();

    if(file.getName().match(/jpg/) ||　file.getName().match(/png/)){
  //ドライブから画像を取得
  var PicID = file.getId()　　　//画像のファイルID
  var blob = DriveApp.getFileById(PicID).getBlob();
 
  //base64に変換
  var c_type = blob.getContentType();
  var base64 = Utilities.base64Encode(blob.getBytes());
  var data = &quot;data:&quot; + c_type + &quot;;base64, &quot; + base64;

  var image = SpreadsheetApp.newCellImage()
                            .setSourceUrl(data)
                            .build();
  }else{
    image=&quot;&quot;
  }

    //「名前」「説明」「URL」をそれぞれ格納
    Pic.push(&#x5B;
      file.getName(),
      file.getUrl(),
      file.getId(),
      &quot;=image(\&quot;https://drive.google.com/uc?id=&quot;+file.getId()+&quot;\&quot;)&quot;,
      image
    ]);
  }

</pre></div>


<h3 class="wp-block-heading"><span id="toc7">setvaluesで書き込み。</span></h3>



<p>③最後にスプレッドシートに書き込んで終わりです。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(2,1,Pic.length,Pic&#x5B;0].length).setValues(Pic)

</pre></div>


<h2 class="wp-block-heading"><span id="toc8">プログラムのポイント</span></h2>



<p>今回のプログラムのポイントは、</p>



<p>①image関数を使って、セル内に画像を表示させること。</p>



<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-nujonoa-blog"><div class="wp-block-embed__wrapper">

<a rel="noopener" target="_blank" href="https://nujonoa.com/how-to-use-the-image-function/" title="【spreadsheet】image関数！セル内に画像を入れて一気に見栄えアップ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" src="http://nujonoa.com/wp-content/uploads/2019/05/25052019121319A-160x90.png" alt="" class=" internal-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【spreadsheet】image関数！セル内に画像を入れて一気に見栄えアップ！</div><div class="blogcard-snippet internal-blogcard-snippet">【spreadsheet】image関数！セル内に画像を入れて一気に見栄えアップ！Excelに対して、スプレッドシートを用いる利点として、・共有しやすい・QUERY関数を使えるので、データベースを作りやすい・グーグル関係(メールなど)と連携...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.08.11</div></div></div></div></a>
</div></figure>



<p>②数式の中に「”(ダブルクオーテーションマーク)」を使う時は、<br>　「\”」と宣言しないといけないこと。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
      &quot;=image(\&quot;https://drive.google.com/uc?id=&quot;+file.getId()+&quot;\&quot;)&quot;,
</pre></div>


<p>③push関数の使い方</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
    Pic.push(&#x5B;A, B, C, D ]);
</pre></div>


<figure class="wp-block-embed-wordpress wp-block-embed is-type-wp-embed is-provider-nujonoa-blog"><div class="wp-block-embed__wrapper">

<a rel="noopener" target="_blank" href="https://nujonoa.com/how-to-combine-two-dimensional-arrays/" title="【GAS入門】2次元配列の結合方法。unshift,push,concatの使い方" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" src="http://nujonoa.com/wp-content/uploads/2019/05/25052019121319A-160x90.png" alt="" class=" internal-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【GAS入門】2次元配列の結合方法。unshift,push,concatの使い方</div><div class="blogcard-snippet internal-blogcard-snippet">【GAS入門】2次元配列の結合方法。unshift,push,concatの使い方スプレッドシートで、GASを使っていくうえで、非常に重要になるのが・二次元配列を使えるかどうか？です。というのも、20回掛け算する場合、・セル毎に計算　→　4...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.07.14</div></div></div></div></a>
</div></figure>



<p>です。</p>



<p>あとは、</p>



<p>セル内に画像を入れるためのデータ変換ですが、これはおまじないとして覚えるのがよさそうです。。</p>



<h2 class="wp-block-heading"><span id="toc9">まとめ</span></h2>



<p>スプレッドシートを使うと、ドライブと連携して、画像の表示などいろいろなことができます。</p>



<p>ぜひ、自分なりのアレンジをして、かっこいい表を作成してください！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/gas-paste-the-image-in-the-cell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【無料】請求書作成プログラム(電子帳簿保存法対応‗副業、個人事業主さん向け)</title>
		<link>https://nujonoa.com/free-invoice-creation-program-compatible-with-the-electronic-bookkeeping-law/</link>
					<comments>https://nujonoa.com/free-invoice-creation-program-compatible-with-the-electronic-bookkeeping-law/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Sat, 23 Apr 2022 11:50:40 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=13855</guid>

					<description><![CDATA[目次 【無料】請求書作成プログラム(電子帳簿保存法対応‗副業、個人事業主さん向け)タイムスタンプ問題実際のところどうなのか？「第３者がグーグルさん」で大丈夫なの？【無料】請求書作成プログラムについて概要実際の画面を見せな [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【無料】請求書作成プログラム(電子帳簿保存法対応‗副業、個人事業主さん向け)</a></li><li><a href="#toc2" tabindex="0">タイムスタンプ問題</a><ol><li><a href="#toc3" tabindex="0">実際のところどうなのか？</a></li><li><a href="#toc4" tabindex="0">「第３者がグーグルさん」で大丈夫なの？</a></li></ol></li><li><a href="#toc5" tabindex="0">【無料】請求書作成プログラムについて</a><ol><li><a href="#toc6" tabindex="0">概要</a></li><li><a href="#toc7" tabindex="0">実際の画面を見せながら説明</a><ol><li><a href="#toc8" tabindex="0">初期設定</a></li><li><a href="#toc9" tabindex="0">請求書作成シート</a></li><li><a href="#toc10" tabindex="0">取引実績表</a></li><li><a href="#toc11" tabindex="0">PDFファイル</a></li><li><a href="#toc12" tabindex="0">変更履歴について</a></li><li><a href="#toc13" tabindex="0">請求額一覧表</a></li></ol></li><li><a href="#toc14" tabindex="0">認可について・・・</a></li></ol></li><li><a href="#toc15" tabindex="0">プログラムの配布</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><ol><ol><ol><li><a href="#toc17" tabindex="0">その他参考URL</a></li></ol></li></ol></li></ol></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【無料】請求書作成プログラム(電子帳簿保存法対応‗副業、個人事業主さん向け)</span></h2>



<p>個人事業主を困らせる、電子帳簿保存法。</p>



<p>楽になるはずが、タイムスタンプの導入が必要？？？ということで、<br><span class="marker-animation">認可をとっているところに頼むと、初期費用で大きくお金が必要になってきます。。</span></p>



<p>会計ソフトなどで対応するのがいいのかもしれませんが、<br>そんなにお金をかけれない。。。</p>



<p><span class="marker-animation">ということで、今回は「GOOGLE」さんのお力を借りて、請求書作成プログラムを作成してみました。</span></p>



<h2 class="wp-block-heading"><span id="toc2">タイムスタンプ問題</span></h2>



<p>まずは、タイムスタンプ問題の整理から。</p>



<p>データを電子データで保存しなさい。といわれている一方で、<br><br><span class="marker-animation">電子データって簡単に改ざんできるんじゃない？？<br></span>ということで、改ざんを防止するためにできた法律が電子帳簿保存法です。</p>



<p>そこで登場するのがタイムスタンプです。<br>ファイルに「時間を示す暗号」なるものを付与して、その時間に作られたことを証明するイメージで、「一般財団法人日本データ通信協会の認定事業者」が提供しているサービスを利用する必要があるとのことです。ただそれを行うためには、費用が高い。。。。</p>



<p><span class="marker-animation">これって、個人事業主が対応できるの？という問題が出てきます。</span></p>



<h3 class="wp-block-heading"><span id="toc3">実際のところどうなのか？</span></h3>



<p>ということで、実際のところどうなのかを確認したところ、<br>まず、国税庁が出しているチラシには、</p>



<p>基本的には、下記の通り、<br>①改ざん防止のための措置をとること。<br>②日付等で検索できるようにすること<br>が必要で、①は<span class="marker-animation">最低、「改ざん防止のための事務処理規定を定めて守る」</span>でも構わないとのことです。<br>登録、変更する際には、上司なり「第３者の目が必要ですよ」って感じですね。</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><a rel="noopener" target="_blank" href="https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0021005-038.pdf"><img loading="lazy" decoding="async" width="746" height="375" src="https://nujonoa.com/wp-content/uploads/2022/04/image-5.png" alt="" class="wp-image-13863" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-5.png 746w, https://nujonoa.com/wp-content/uploads/2022/04/image-5-500x251.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-5-300x151.png 300w" sizes="(max-width: 746px) 100vw, 746px" /></a></figure></div>



<p>ということで、<span class="marker-animation">今回はこの「第３者の目をグーグルさんにしてもらう形」</span>になります。</p>



<h3 class="wp-block-heading"><span id="toc4">「第３者がグーグルさん」で大丈夫なの？</span></h3>



<p>ここで疑問になるのが、第３者がグーグルさんで大丈夫なの？というところですが、<br>国税庁の知り合いに確認したところ、</p>



<p>基本的には、「改ざんされるデータ」で履歴が取れないデータとは、社内サーバー、個人パソコンのような、オンプレ環境にあるものが対象であるという見解を得ています。</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-3.png"><img loading="lazy" decoding="async" width="660" height="589" src="https://nujonoa.com/wp-content/uploads/2022/04/image-3.png" alt="" class="wp-image-13859" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-3.png 660w, https://nujonoa.com/wp-content/uploads/2022/04/image-3-500x446.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-3-300x268.png 300w" sizes="(max-width: 660px) 100vw, 660px" /></a></figure></div>



<p>こちらのブログでも、同様の意見ということですね。<br>といっても、結局解釈の違いとか言われていろいろと難しいところはありそうです。<br>が、個人事業主レベルでは、これくらいの解釈でしか対応できないですよね。。。</p>




<a rel="noopener" target="_blank" href="https://note.com/dencho/n/n03ca41fbeeae" title="note &#12372;&#25351;&#23450;&#12398;&#12506;&#12540;&#12472;&#12364;&#35211;&#12388;&#12363;&#12426;&#12414;&#12379;&#12435;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fnote.com%2Fdencho%2Fn%2Fn03ca41fbeeae?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">note &#12372;&#25351;&#23450;&#12398;&#12506;&#12540;&#12472;&#12364;&#35211;&#12388;&#12363;&#12426;&#12414;&#12379;&#12435;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://note.com/dencho/n/n03ca41fbeeae" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">note.com</div></div></div></div></a>



<h2 class="wp-block-heading"><span id="toc5">【無料】請求書作成プログラムについて</span></h2>



<p>ということで、ここからは作成した請求書作成プログラムについて、説明していきたいと思います。</p>



<h3 class="wp-block-heading"><span id="toc6">概要</span></h3>



<p>本プログラムは、</p>



<div class="wp-block-group is-style-sticky-red is-layout-flow wp-block-group-is-layout-flow">
<p>グーグルのプログラムGASを用いて、<br>・グーグルスプレッドシート<br>・グーグルドライブ(PDFファイルの保存)<br>にデータを作成、保存していく</p>
</div>



<p>プログラムになります。</p>



<p>データの流れは、</p>



<p>①いつも通り請求書を作成。<br>②登録ボタンを押すと、PDFとシートを作成。<br>③取引実績表にデータを追加。<br>④実績表にリンクを張り付け、検索性を向上。<br>⑤タイムスタンプ機能については、グーグルドライブの履歴にて、どのような操作がなされたかを確認できますので、そこで変更履歴を確認。(↓過去７年間見れています)</p>



<div class="wp-block-cocoon-blocks-column-2 column-wrap column-2 column-2-2-1-1 layout-box">
<div class="wp-block-cocoon-blocks-column-left column-left">
<figure class="wp-block-image size-thumbnail"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-14.png"><img loading="lazy" decoding="async" width="300" height="681" src="https://nujonoa.com/wp-content/uploads/2022/04/image-14-300x681.png" alt="" class="wp-image-13878" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-14-300x681.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-14.png 381w" sizes="(max-width: 300px) 100vw, 300px" /></a></figure>
</div>



<div class="wp-block-cocoon-blocks-column-right column-right">
<p>古いフォルダを検索したところ、2022年4月時点で、2015年5月の履歴を確認することできましたので、必要十分なデータを持っていると思っても大丈夫ではないかと思います。</p>
</div>
</div>



<p>⑥請求金額一覧表を作成し、毎月の請求額の一覧も自動で作成できる。</p>



<p>という流れです。<br>これで、データの改ざんに対する対応(タイムスタンプ)もok,検索性もいい、<br>国税庁のチラシに合致したデータを作成できます。</p>



<h3 class="wp-block-heading"><span id="toc7">実際の画面を見せながら説明</span></h3>



<p>まずはざっくりと、動画でどのような動きをするか確認してください。</p>



<figure class="wp-block-video"><video controls muted src="https://nujonoa.com/wp-content/uploads/2022/04/2022-04-23_21h04_11.mp4"></video></figure>



<p>↓ではシートを見ながら詳細を説明していきます。</p>



<h4 class="wp-block-heading"><span id="toc8">初期設定</span></h4>



<p>初期設定は、<br>・シートの保存先を設定、PDFの保存先フォルダを設定(ともにURLを張り付けるだけ)。<br>・請求書に記載する自社のデータと、振込先を設定。<br>・シートの名前の頭文字を設定<br>するだけで、完了です。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-7.png"><img loading="lazy" decoding="async" width="900" height="393" src="https://nujonoa.com/wp-content/uploads/2022/04/image-7-900x393.png" alt="" class="wp-image-13868" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-7-900x393.png 900w, https://nujonoa.com/wp-content/uploads/2022/04/image-7-500x218.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-7-300x131.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-7-768x335.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-7.png 1305w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<h4 class="wp-block-heading"><span id="toc9">請求書作成シート</span></h4>



<p>請求書はいつものように作成してください。<br>完了したら、登録ボタンをクリックです。取引実績表と、PDFに自動で保存されます。<br>(請求書番号も自動で更新されます。)</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-8.png"><img loading="lazy" decoding="async" src="https://nujonoa.com/wp-content/uploads/2022/04/image-8-900x613.png" alt="" class="wp-image-13869" width="900" height="613" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-8-900x613.png 900w, https://nujonoa.com/wp-content/uploads/2022/04/image-8-500x340.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-8-300x204.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-8-768x523.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-8.png 1071w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure></div>



<h4 class="wp-block-heading"><span id="toc10">取引実績表</span></h4>



<p>取引実績表では、シートへのリンクと、PDFへのリンクが張ってあります。<br>ですので、PDFファイルを探す手間がかかりません。</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-9.png"><img loading="lazy" decoding="async" src="https://nujonoa.com/wp-content/uploads/2022/04/image-9-900x232.png" alt="" class="wp-image-13870" width="900" height="232" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-9-900x232.png 900w, https://nujonoa.com/wp-content/uploads/2022/04/image-9-500x129.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-9-300x77.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-9-768x198.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-9.png 1082w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure></div>



<h4 class="wp-block-heading"><span id="toc11">PDFファイル</span></h4>



<p>逆にPDFからも、シートへのリンクが張ってありますので、相互の関係もピッタリです。</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-10.png"><img loading="lazy" decoding="async" src="https://nujonoa.com/wp-content/uploads/2022/04/image-10.png" alt="" class="wp-image-13871" width="800" height="806" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-10.png 800w, https://nujonoa.com/wp-content/uploads/2022/04/image-10-500x504.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-10-300x302.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-10-768x774.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-10-100x100.png 100w, https://nujonoa.com/wp-content/uploads/2022/04/image-10-150x150.png 150w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure></div>



<h4 class="wp-block-heading"><span id="toc12">変更履歴について</span></h4>



<p>PDFの保存先フォルダでは、下記の通り、履歴を見ることができますので、改ざんされても履歴が残るようになっています。</p>



<div class="wp-block-image"><figure class="aligncenter size-thumbnail is-resized"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-11.png"><img loading="lazy" decoding="async" src="https://nujonoa.com/wp-content/uploads/2022/04/image-11-300x666.png" alt="" class="wp-image-13872" width="225" height="500" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-11-300x666.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-11.png 331w" sizes="(max-width: 225px) 100vw, 225px" /></a></figure></div>



<h4 class="wp-block-heading"><span id="toc13">請求額一覧表</span></h4>



<p>また、各社への請求金額一覧表も自動で生成されますので、<br>各社に払った金額を月ごとに確認することも可能です。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-12.png"><img loading="lazy" decoding="async" width="900" height="516" src="https://nujonoa.com/wp-content/uploads/2022/04/image-12-900x516.png" alt="" class="wp-image-13874" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-12-900x516.png 900w, https://nujonoa.com/wp-content/uploads/2022/04/image-12-500x287.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-12-300x172.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-12-768x441.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-12-120x68.png 120w, https://nujonoa.com/wp-content/uploads/2022/04/image-12.png 1131w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<h3 class="wp-block-heading"><span id="toc14">認可について・・・</span></h3>



<p>どうせなので、認可ソフトとして認定してもらおうと思ったのですが、<br>大変な費用が掛かることが分かったのであきらめています。。すみません。。。</p>



<figure class="wp-block-image size-large"><a rel="noopener" target="_blank" href="https://nujonoa.com/wp-content/uploads/2022/04/image-6.png"><img loading="lazy" decoding="async" width="900" height="416" src="https://nujonoa.com/wp-content/uploads/2022/04/image-6-900x416.png" alt="" class="wp-image-13864" srcset="https://nujonoa.com/wp-content/uploads/2022/04/image-6-900x416.png 900w, https://nujonoa.com/wp-content/uploads/2022/04/image-6-500x231.png 500w, https://nujonoa.com/wp-content/uploads/2022/04/image-6-300x139.png 300w, https://nujonoa.com/wp-content/uploads/2022/04/image-6-768x355.png 768w, https://nujonoa.com/wp-content/uploads/2022/04/image-6.png 1038w" sizes="(max-width: 900px) 100vw, 900px" /></a></figure>



<h2 class="wp-block-heading"><span id="toc15">プログラムの配布</span></h2>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1GCOaR_evPmEOQXWFTC8dxsS-2CyANAKvlcA1JPSl1_0/edit#gid=808960027" class="btn btn-l btn-shine">サンプルを確認<span class="fa fa-external-link external-icon anchor-icon"></span></a></div>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1GL7lSUcLgWZiJce1wsMBBW3neLTaKtGnE98KANpVfYg/copy" class="btn btn-l">プログラムのコピーを作成<span class="fa fa-external-link external-icon anchor-icon"></span></a></div>



<p></p>



<h2 class="wp-block-heading"><span id="toc16">まとめ</span></h2>



<p>電子保存により、色々とメリット出るかと思っていたのですが、<br>やはりデメリットも出てきますよね、、、</p>



<p><span class="marker-animation">がんばれ日本！！！</span>ということで、新しい目を摘まないためにも、<br>ぜひこのプログラムで、お金をかけずに電子請求書の作成を行ってみてください！</p>



<p>簡単な導入の案内なども、お気持ち程度のお金で承りますので、<br>コメント欄(メールアドレス必須)に書き込んでいただければと思います！</p>



<h6 class="wp-block-heading"><span id="toc17">その他参考URL</span></h6>




<a rel="noopener" target="_blank" href="https://note.com/dencho/n/n03ca41fbeeae" title="note &#12372;&#25351;&#23450;&#12398;&#12506;&#12540;&#12472;&#12364;&#35211;&#12388;&#12363;&#12426;&#12414;&#12379;&#12435;" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fnote.com%2Fdencho%2Fn%2Fn03ca41fbeeae?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">note &#12372;&#25351;&#23450;&#12398;&#12506;&#12540;&#12472;&#12364;&#35211;&#12388;&#12363;&#12426;&#12414;&#12379;&#12435;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://note.com/dencho/n/n03ca41fbeeae" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">note.com</div></div></div></div></a>



<p><a rel="noopener" target="_blank" href="https://embedded-property.net/%E3%82%B9%E3%83%A2%E3%83%BC%E3%83%AB%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9%EF%BC%88%E5%80%8B%E4%BA%BA%E4%BA%8B%E6%A5%AD%E4%B8%BB%E7%99%BB%E9%8C%B2%E8%80%85%EF%BC%89%E3%81%8C%E9%9B%BB%E5%AD%90%E5%B8%B3/">スモールビジネス（個人事業主登録者）が電子帳簿保存法に対応するには | E.P.ラボ (embedded-property.net)<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<p><a rel="noopener" target="_blank" href="https://www.k-yamaken.com/hiro/can-we-use-googleworkspace-to-comply-with-the-electronic-bookkeeping-act/">Google Workspaceを用いて、電子帳簿保存法に対応する方法。 | 練馬のリフォーム 山口建設 (k-yamaken.com)<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<p><a rel="noopener" target="_blank" href="https://insomceo.com/dencyohou/">電子帳簿保存法改正に一人会社でコストをかけずに対応してみる | 不眠症社長の一人会社日記 (insomceo.com<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<p><a rel="noopener" target="_blank" href="https://pca.jp/p-tips/articles/fl211001.html">電子帳簿保存法のタイムスタンプとは？2020年、2022年の改正で緩和された内容も解説 | 特集記事 | P-Tips | ピー・シー・エー株式会社 (pca.jp)<span class="fa fa-external-link external-icon anchor-icon"></span></a></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/free-invoice-creation-program-compatible-with-the-electronic-bookkeeping-law/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="http://nujonoa.com/wp-content/uploads/2022/04/2022-04-23_21h04_11.mp4" length="1582009" type="video/mp4" />

			</item>
		<item>
		<title>【GASのWEBアプリ】で登録フォームを作る。</title>
		<link>https://nujonoa.com/make-a-registration-form-with-gas/</link>
					<comments>https://nujonoa.com/make-a-registration-form-with-gas/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Thu, 21 Apr 2022 11:00:00 +0000</pubDate>
				<category><![CDATA[webアプリ]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[登録フォーム]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=13838</guid>

					<description><![CDATA[今回作ったもの↓ 下記の登録フォームです。 目次 GASで登録フォームを作る。index.htmljs1.htmlcss.htmlthankyou.html GASで登録フォームを作る。 doPost(e)でformから [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>今回作ったもの↓</p>



<p>下記の登録フォームです。</p>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbyEuREe6NFjsiufwIC2BsYRF-EzN-ETHCe5O-TfjTWCxkHyZquoZIA4nczlHaafYqoRLQ/exec" width="600" height="900"></iframe>





<a rel="noopener" target="_blank" href="https://docs.google.com/spreadsheets/d/1lJxHTNf80wQJQHnZFJA4g2G15E5rmm1haWY0lmXR2l4/edit?usp=sharing" title="登録フォーム作成(css)" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://lh7-us.googleusercontent.com/docs/AHkbwyKwaSfVc4wfd_SBEar7bQrpHQUCR0yjlbRWWPQf7B3MLa7gcw4_uJ-jcKM9LjfE22yYt1tCf4vUy3AlSU9RWik_0Pn9KQB1zg2M7sTfX6LPAfykm2Vq=w1200-h630-p" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">登録フォーム作成(css)</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.google.com/spreadsheets/d/1lJxHTNf80wQJQHnZFJA4g2G15E5rmm1haWY0lmXR2l4/edit?usp=sharing&#038;usp=embed_facebook" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.google.com</div></div></div></div></a>





  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">GASで登録フォームを作る。</a><ol><li><a href="#toc2" tabindex="0">index.html</a></li><li><a href="#toc3" tabindex="0">js1.html</a></li><li><a href="#toc4" tabindex="0">css.html</a></li><li><a href="#toc5" tabindex="0">thankyou.html</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">GASで登録フォームを作る。</span></h2>



<p>doPost(e)でformから、下記内容を取り出すことができ、</p>



<p>{contentLength=116.0, parameter={usex=F, uaddress=愛知県蒲郡市, uname=山下太郎, umail=DAFAFA@KOA, uzip=123-4567}, parameters={uzip=[Ljava.lang.Object;@e0b929d, uaddress=[Ljava.lang.Object;@4defa65b, uname=[Ljava.lang.Object;@31f04075, umail=[Ljava.lang.Object;@7faa2595, usex=[Ljava.lang.Object;@2de7cf87}, contextPath=, queryString=, postData=FileUpload}</p>



<p>そこから情報を抜き出すためには、e.parameter.○○で</p>



<p>e.parameter.unam　⇒　山下太郎</p>



<p>が取り出せる形になります。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
function doGet() {
  let html = HtmlService.createTemplateFromFile('index').evaluate().getContent();
  return HtmlService.createHtmlOutput(html)
    .setSandboxMode(HtmlService.SandboxMode.IFRAME)
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

function doPost(e) {
  var sheet = SpreadsheetApp.openById(&quot;○○○○○○○○○○〇&quot;).getSheetByName(&quot;シート1&quot;);
  var array = &#x5B;e.parameter.uname, e.parameter.umail, e.parameter.usex, e.parameter.uaddress];
  sheet.appendRow(array);

  //  var html = HtmlService.createHtmlOutputFromFile(&quot;thankyou&quot;);
  let html = HtmlService.createTemplateFromFile('thankyou').evaluate().getContent();
  sheet.getRange(7,1).setvalue(html);
  return HtmlService.createHtmlOutput(html)
    .setSandboxMode(HtmlService.SandboxMode.IFRAME)
    .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);

}

//https://officeforest.org/wp/2018/11/28/google-apps-script%E3%81%A7get%E3%83%BBpost/
//https://nixeneko.hatenablog.com/entry/2021/03/12/070000

</pre></div>


<h3 class="wp-block-heading"><span id="toc2">index.html</span></h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&lt;!--/*%_skip_start_%*/--&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ja&quot;&gt;

&lt;head&gt;
  &lt;meta http-equiv=&quot;content-Type&quot; content=&quot;text/html&quot; 　charset=&quot;utf-8&quot;&gt;
  &lt;title&gt;登録フォーム&lt;/title&gt;
  &lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js&quot;&gt;&lt;/script&gt;
  &lt;?!= HtmlService.createHtmlOutputFromFile('js1').getContent(); ?&gt;
  &lt;?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?&gt;

&lt;/head&gt;

&lt;body&gt;
  &lt;div class=&quot;user&quot;&gt;
    &lt;header class=&quot;user__header&quot;&gt;
      &lt;img src=&quot;https://s3-us-west-2.amazonaws.com/s.cdpn.io/3219/logo.svg&quot; alt=&quot;&quot; /&gt;
      &lt;h1 class=&quot;user__title&quot;&gt;A lightweight and simple sign-up form&lt;/h1&gt;
    &lt;/header&gt;

    &lt;form class=&quot;form&quot; method=&quot;post&quot;
      action=&quot;https://script.google.com/macros/s/○○○○○○○○○○○○○○/exec&quot;&gt;
      &lt;div class=&quot;form__group&quot;&gt;
        &lt;!--      お名前を入力してください。（必須）&lt;br&gt; --&gt;
        &lt;input type=&quot;text&quot; name=&quot;uname&quot; id=&quot;uname&quot;  class=&quot;form__input&quot;  placeholder=&quot;Username&quot;&gt;
        &lt;span class=&quot;alert&quot;&gt;&lt;/span&gt;
      &lt;/div&gt;
      &lt;!-- 性別を入力してください。（必須）&lt;br&gt; --&gt;
      &lt;input type=&quot;radio&quot; name=&quot;usex&quot; value=&quot;M&quot;&gt;男性
      &lt;input type=&quot;radio&quot; name=&quot;usex&quot; value=&quot;F&quot;&gt;女性
      &lt;span class=&quot;alert&quot;&gt;&lt;/span&gt;
      &lt;div class=&quot;form__group&quot;&gt;
        &lt;!-- メールアドレスを入力してください。（必須）&lt;br&gt;--&gt;
        &lt;input type=&quot;text&quot; name=&quot;umail&quot; size=&quot;50&quot; id=&quot;umail&quot; placeholder=&quot;Email&quot; class=&quot;form__input&quot;&gt;
        &lt;span class=&quot;alert&quot;&gt;&lt;/span&gt;
      &lt;/div&gt;
      &lt;!-- 郵便番号を入力してください。（例：012-3456）&lt;br&gt; --&gt;
      &lt;div class=&quot;form__group&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;uzip&quot; id=&quot;uzip&quot; placeholder=&quot;郵便番号(例:012-3456)&quot; class=&quot;form__input&quot;&gt;
        &lt;span class=&quot;alert&quot;&gt;&lt;/span&gt;
      &lt;/div&gt;
      &lt;!-- 住所を入力してください。（100文字まで）&lt;br&gt; --&gt;
      &lt;div class=&quot;form__group&quot;&gt;
        &lt;textarea name=&quot;uaddress&quot; cols=&quot;50&quot; rows=&quot;3&quot; placeholder=&quot;住所&quot; class=&quot;form__input&quot;&gt;&lt;/textarea&gt;
        &lt;span class=&quot;alert&quot;&gt;&lt;/span&gt;
      &lt;/div&gt;
      &lt;button  type=&quot;submit&quot; class=&quot;btn&quot;&gt;Register&lt;/button&gt;

    &lt;/form&gt;
  &lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;

&lt;!-- https://copypet.jp/692/--&gt;

<a rel="noopener" target="_blank" href="https://deshinon.com/2019/03/03/register-kopipe-css-oshare/" title="おしゃれシンプルデザインの新規登録フォーム！ コピペで差が付くデザインをCSSで - デシノン" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://deshinon.com/wp-content/uploads/2019/03/simplescreenrecorder20190313-6.gif" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">おしゃれシンプルデザインの新規登録フォーム！ コピペで差が付くデザインをCSSで - デシノン</div><div class="blogcard-snippet external-blogcard-snippet">ユーザーインターフェイスがよすぎる、おしゃれな新規登録フォームをまとめました！ プロ並のデザインなのに、ぜんぶコピペでできちゃう、、</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://deshinon.com/2019/03/03/register-kopipe-css-oshare/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">deshinon.com</div></div></div></div></a>
</pre></div>


<h3 class="wp-block-heading"><span id="toc3">js1.html</span></h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;


  $(function(){
	// フォームがサブミットされたときの処理
	$(&quot;form&quot;).submit(function(){
		// サブミットチェック用の変数を宣言
		var checkSubmit = true;

		// 名前の入力チェック
		if ($(&quot;#uname&quot;).val() == &quot;&quot;) {
			// 未入力時はerrorクラスを追加
			$(&quot;#uname&quot;).addClass(&quot;error&quot;);
			// メッセージを追加
			$(&quot;#uname+span&quot;).text(&quot;名前を入力してください。&quot;);
			// 未入力なのでサブミットさせない
			checkSubmit = false;
		} else {
			// 入力時はerrorクラスを削除
			$(&quot;#uname&quot;).removeClass(&quot;error&quot;);
			// メッセージを削除
			$(&quot;#uname+span&quot;).text(&quot;&quot;);
		}

		// 性別の入力チェック
		if ($(&quot;:radio:checked&quot;).length == 0) {
			// チェックされた要素がない（＝未入力）
			// errorクラスを追加
			$(&quot;:radio&quot;).addClass(&quot;error&quot;);
			// メッセージを追加
			$(&quot;:radio+span&quot;).text(&quot;性別を入力してください。&quot;);
			// 未入力なのでサブミットさせない
			checkSubmit = false;
		} else {
			// 入力時はerrorクラスを削除
			$(&quot;:radio&quot;).removeClass(&quot;error&quot;);
			// メッセージを削除
			$(&quot;:radio+span&quot;).text(&quot;&quot;);
		}

		// メールアドレスの入力チェック
		if ($(&quot;#umail&quot;).val() == &quot;&quot;) {
			// 未入力時はerrorクラスを追加
			$(&quot;#umail&quot;).addClass(&quot;error&quot;);
			// メッセージを追加
			$(&quot;#umail+span&quot;).text(&quot;メールアドレスを入力してください。&quot;);
			// 未入力なのでサブミットさせない
			checkSubmit = false;
		} else {
			// 入力時はerrorクラスを削除
			$(&quot;#umail&quot;).removeClass(&quot;error&quot;);
			// メッセージを削除
			$(&quot;#umail+span&quot;).text(&quot;&quot;);
		}

		// サブミットチェック用の変数を返す
		return checkSubmit;
	});

	// 名前が変更されたときの処理
	$(&quot;#uname&quot;).change(function(){
		// 名前の入力チェック
		if ($(&quot;#uname&quot;).val() == &quot;&quot;) {
			// 未入力時はerrorクラスを追加
			$(&quot;#uname&quot;).addClass(&quot;error&quot;);
			// メッセージを追加
			$(&quot;#uname+span&quot;).text(&quot;名前を入力してください。&quot;);
		} else {
			// 入力時はerrorクラスを削除
			$(&quot;#uname&quot;).removeClass(&quot;error&quot;);
			// メッセージを削除
			$(&quot;#uname+span&quot;).text(&quot;&quot;);
		}
	});

	// ラジオボタンがクリックされたときの処理
	$(&quot;:radio&quot;).click(function(){
		// 性別の入力チェック
		if ($(&quot;:radio:checked&quot;).length == 0) {
			// チェックされた要素がない（＝未入力）
			// errorクラスを追加
			$(&quot;:radio&quot;).addClass(&quot;error&quot;);
			// メッセージを追加
			$(&quot;:radio+span&quot;).text(&quot;性別を入力してください。&quot;);
		} else {
			// 入力時はerrorクラスを削除
			$(&quot;:radio&quot;).removeClass(&quot;error&quot;);
			// メッセージを削除
			$(&quot;:radio+span&quot;).text(&quot;&quot;);
		}
	});

	// メールアドレスが変更されたときの処理
	$(&quot;#umail&quot;).change(function(){
		// メールアドレスの書式チェック
		if ($(&quot;#umail&quot;).val().match(/^&#x5B;\w\.-]+\@&#x5B;\w\.-]+$/)) {
			// 書式が正しい
			$(&quot;#umail&quot;).removeClass(&quot;error&quot;);
			$(&quot;#umail+span&quot;).text(&quot;&quot;);
		} else {
			// 書式に誤りがある
			$(&quot;#umail&quot;).addClass(&quot;error&quot;);
			$(&quot;#umail+span&quot;).text(&quot;書式に誤りがあります。&quot;);
		}
	});

	// 郵便番号が変更されたときの処理
	$(&quot;#uzip&quot;).change(function(){
		// 郵便番号の書式チェック
		if ($(&quot;#uzip&quot;).val().match(/^\d{3}\-\d{4}$/)) {
			// 書式が正しい
			$(&quot;#uzip&quot;).removeClass(&quot;error&quot;);
			$(&quot;#uzip+span&quot;).text(&quot;&quot;);
		} else {
			// 書式に誤りがある
			$(&quot;#uzip&quot;).addClass(&quot;error&quot;);
			$(&quot;#uzip+span&quot;).text(&quot;書式に誤りがあります。&quot;);
		}
	});

	// 住所の入力中の処理
	$(&quot;textarea&quot;).keyup(function(){
		// 文字数を取得
		var inputLength = $(&quot;textarea&quot;).val().length;

		// 住所の文字数チェック
		if (inputLength &lt;= 100) {
			// 100文字以内
			$(&quot;textarea&quot;).removeClass(&quot;error&quot;);
			$(&quot;textarea+span&quot;).text(inputLength+&quot;/100&quot;);
		} else {
			// 100文字を超えた
			$(&quot;textarea&quot;).addClass(&quot;error&quot;);
			$(&quot;textarea+span&quot;).text(&quot;入力文字数が長すぎます。&quot;);
		}
	});
});

//cssの何か
const button = document.querySelector('.btn')
const form   = document.querySelector('.form')

button.addEventListener('click', function() {
   form.classList.add('form--no') 
});


&lt;/script&gt;
</pre></div>


<h3 class="wp-block-heading"><span id="toc4">css.html</span></h3>



<p>基本↓のサイトの内容からこのサイトに適応させております。<br>その他さまざまなCSSありますので、ぜひ参考に下さい。</p>





<a rel="noopener" target="_blank" href="https://deshinon.com/2019/03/03/register-kopipe-css-oshare/" title="おしゃれシンプルデザインの新規登録フォーム！ コピペで差が付くデザインをCSSで - デシノン" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-right cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://deshinon.com/wp-content/uploads/2019/03/simplescreenrecorder20190313-6.gif" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">おしゃれシンプルデザインの新規登録フォーム！ コピペで差が付くデザインをCSSで - デシノン</div><div class="blogcard-snippet external-blogcard-snippet">ユーザーインターフェイスがよすぎる、おしゃれな新規登録フォームをまとめました！ プロ並のデザインなのに、ぜんぶコピペでできちゃう、、</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://deshinon.com/2019/03/03/register-kopipe-css-oshare/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">deshinon.com</div></div></div></div></a>



<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&lt;style&gt;
  //エラー用
  .error {
    background-color: #FFCCCC;
  }

  .alert {
    color: #FF0000;
    font-size: small;
  }

  //cssのもの

  $font-family: &quot;Roboto&quot;;
  $font-size: 14px;

  $color-primary: #ABA194;

  * {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body {
    font-family: $font-family;
    font-size: $font-size;
    background-size: 200% 100% !important;
    animation: move 10s ease infinite;
    transform: translate3d(0, 0, 0);
    background: linear-gradient(45deg, #49D49D 10%, #A2C7E5 90%);
    height: 100vh
  }

  .user {
    width: 90%;
    max-width: 340px;
    margin: 10vh auto;
  }

  .user__header {
    text-align: center;
    opacity: 0;
    transform: translate3d(0, 500px, 0);
    animation: arrive 500ms ease-in-out 0.7s forwards;
  }

  .user__title {
    font-size: $font-size;
    margin-bottom: -10px;
    font-weight: 500;
    color: white;
  }

  .form {
    margin-top: 40px;
    border-radius: 6px;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0, 500px, 0);
    animation: arrive 500ms ease-in-out 0.9s forwards;
  }

  .form--no {
    animation: NO 1s ease-in-out;
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }

  .form__input {
    display: block;
    width: 100%;
    padding: 20px;
    font-family: $font-family;
    -webkit-appearance: none;
    border: 0;
    outline: 0;
    transition: 0.3s;

    &amp;:focus {
      background: darken(#fff, 3%);
    }
  }

  .btn {
    display: block;
    width: 100%;
    padding: 20px;
    font-family: $font-family;
    -webkit-appearance: none;
    outline: 0;
    border: 0;
    color: white;
    background: $color-primary;
    transition: 0.3s;

    &amp;:hover {
      background: darken($color-primary, 5%);
    }
  }

  @keyframes NO {

    from,
    to {
      -webkit-transform: translate3d(0, 0, 0);
      transform: translate3d(0, 0, 0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
      -webkit-transform: translate3d(-10px, 0, 0);
      transform: translate3d(-10px, 0, 0);
    }

    20%,
    40%,
    60%,
    80% {
      -webkit-transform: translate3d(10px, 0, 0);
      transform: translate3d(10px, 0, 0);
    }
  }

  @keyframes arrive {
    0% {
      opacity: 0;
      transform: translate3d(0, 50px, 0);
    }

    100% {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes move {
    0% {
      background-position: 0 0
    }

    50% {
      background-position: 100% 0
    }

    100% {
      background-position: 0 0
    }
  }
&lt;/style&gt;
</pre></div>


<h3 class="wp-block-heading"><span id="toc5">thankyou.html</span></h3>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
&lt;!DOCTYPE html&gt;
&lt;html lang=&quot;ja&quot;&gt;

&lt;head&gt;
  &lt;meta http-equiv=&quot;content-Type&quot; content=&quot;text/html&quot; 　charset=&quot;utf-8&quot;&gt;
  &lt;title&gt;登録フォーム&lt;/title&gt;
  &lt;script src=&quot;//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js&quot;&gt;&lt;/script&gt;
  &lt;?!= HtmlService.createHtmlOutputFromFile('js1').getContent(); ?&gt;
  &lt;?!= HtmlService.createHtmlOutputFromFile('css').getContent(); ?&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;div class=&quot;user&quot;&gt;
    &lt;header class=&quot;user__header&quot;&gt;
      &lt;img src=&quot;https://s3-us-west-2.amazonaws.com/s.cdpn.io/3219/logo.svg&quot; alt=&quot;&quot; /&gt;
      &lt;h1 class=&quot;user__title&quot;&gt;ありがとう&lt;/h1&gt;
    &lt;/header&gt;
  &lt;/div&gt;
&lt;/body&gt;

&lt;/html&gt;
</pre></div>]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/make-a-registration-form-with-gas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【GAS】2次元配列から、必要な列だけ取り出す方法</title>
		<link>https://nujonoa.com/how-to-extract-only-the-required-columns-from-a-2d-array/</link>
					<comments>https://nujonoa.com/how-to-extract-only-the-required-columns-from-a-2d-array/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Wed, 13 Apr 2022 07:57:33 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=11112</guid>

					<description><![CDATA[忘備録です。 目次 【GAS】2次元配列から、必要な列だけ取り出す方法array.forEach(function (element, index, array1) 【GAS】2次元配列から、必要な列だけ取り出す方法 G [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>忘備録です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【GAS】2次元配列から、必要な列だけ取り出す方法</a></li><li><a href="#toc2" tabindex="0">array.forEach(function (element, index, array1)</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">【GAS】2次元配列から、必要な列だけ取り出す方法</span></h2>



<p>GASは値の書きこみ、消去などをいちいち行っていくと、非常に遅くなります。</p>



<p>ですので、GASを高速化するためには、2次元配列を駆使することは必須となります。</p>



<p>そこで今回は、2次元配列から、必要な列だけ取り出す方法を忘備録として残しておきたいと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">array.forEach(function (element, index, array1)</span></h2>



<p>使用するのは、配列<span class="marker-animation">.forEach(function (</span>要素, 番号, 元の2次元配列){})で、<br>下記のように、使用することで、二次元配列の各値を取得することが可能です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
array.forEach(function (element, index, array1){
    console.log(array1) //元の行列を取り出し
    console.log(index) //配列の番号を取り出し
    console.log(element)　//配列の要素を取り出し
})
</pre></div>


<p>もう少し具体的にコードを書くと、下記の通り、</p>



<p>・A1~E5までの範囲を取得し、sheet_dataに代入<br>・pushを用いて、B列[1]C列[2]の情報だけ抜き出し、新たな配列data_out.を作成。<br>・最後に.setValuesで一気に貼り付ける<br>というコードを書いてみました。<br>コンソールログにて、どのようなデータが取れているか見ることが出来るので、是非走らせてみてください。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function myFunction() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var sheet_data = sheet.getSheetValues(1, 1, 5, 5)

  var data_out = &#x5B;]

  num = 0
  sheet_data.forEach(function (element, index, array1) {
    console.log(array1)
    console.log(index)
    console.log(element)

    num = num + 1
    data_out.push(&#x5B;element&#x5B;1], element&#x5B;2]])

  });

  console.log(&quot;data_out↓&quot;)
  console.log(data_out)

  sheet.getRange(1, 7, num, 2).setValues(data_out)

}
</pre></div>


<p>ちなみに、for~of～　文でも同じように要素を取り出すことが可能です。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
function myFunction2() {

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
  var sheet_data = sheet.getSheetValues(1, 1, 5, 5)
  for (var element of sheet_data) {
    console.log(element);
  };

}
</pre></div>


<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/how-to-extract-only-the-required-columns-from-a-2d-array/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【GAS_Webアプリ集】java-scriptを使う</title>
		<link>https://nujonoa.com/gas_web-application-collection/</link>
					<comments>https://nujonoa.com/gas_web-application-collection/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Mon, 04 Apr 2022 14:04:27 +0000</pubDate>
				<category><![CDATA[webアプリ]]></category>
		<category><![CDATA[GAS]]></category>
		<category><![CDATA[Webアプリ]]></category>
		<category><![CDATA[jQuery]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=10486</guid>

					<description><![CDATA[目次 【GAS_Webアプリ集】java-scriptを動かす①javascriptでhtmlに文字を挿入②ボタンのクリック③文字の入力の反映④htmlの中身を確認、フィードバック⑤掛け算を行う⑥チェックボタン、ラジオボ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">【GAS_Webアプリ集】java-scriptを動かす</a></li><li><a href="#toc2" tabindex="0">①javascriptでhtmlに文字を挿入</a></li><li><a href="#toc3" tabindex="0">②ボタンのクリック</a></li><li><a href="#toc4" tabindex="0">③文字の入力の反映</a></li><li><a href="#toc5" tabindex="0">④htmlの中身を確認、フィードバック</a></li><li><a href="#toc6" tabindex="0">⑤掛け算を行う</a></li><li><a href="#toc7" tabindex="0">⑥チェックボタン、ラジオボタンの使い方</a></li><li><a href="#toc8" tabindex="0">⑦チェックボタンでの分岐</a></li><li><a href="#toc9" tabindex="0">⑧送料無料などの分岐</a></li><li><a href="#toc10" tabindex="0">⑨時間での分岐</a></li><li><a href="#toc11" tabindex="0">⑩工事中・・・</a></li><li><a href="#toc12" tabindex="0">⑪マウスオーバーでコメント</a></li><li><a href="#toc13" tabindex="0">⑫テキストファイルの読み込み</a></li><li><a href="#toc14" tabindex="0">⑬写真の添付</a></li><li><a href="#toc15" tabindex="0">⑭文字列のソート</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading" id="gas-webアプリ集-java-scriptを動かす"><span id="toc1">【GAS_Webアプリ集】java-scriptを動かす</span></h2>



<h2 class="wp-block-heading" id="①javascriptでhtmlに文字を挿入"><span id="toc2">①javascriptでhtmlに文字を挿入</span></h2>



<p>javascriptでページに文字を挿入します。<br>↓の「がんばれ」はjavascriptにて挿入された文字になります。</p>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwGE6HsnR3wiJmtBZzcBxCIfTKb9M373Owur4f6SmpxKP72q1b5HgB1bC7w4RL7XkX_/exec" width="600" height="100"></iframe>



<h2 class="wp-block-heading" id="②ボタンのクリック"><span id="toc3">②ボタンのクリック</span></h2>



<p>ボタンをクリックすると、htmlを操作する動作をjavascriptにて作成します。</p>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbzHuz1w3iys49D4MVxitfq2SYgZJgMx2gFsJxlIPlKxirwk8QE_mG0vie9vaFZdZPeSdA/exec" width="600" height="100"></iframe>



<h2 class="wp-block-heading" id="③文字の入力の反映"><span id="toc4">③文字の入力の反映</span></h2>



<p>文字を入力、ボタンを押すことで、入力を行います。</p>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbyRtrLkKL8aPXlxprlgFTg1LykZ8j6WxwrMLIpsFmCIxXZoX0SIPMoHo651h1M68YhV/exec" width="600" height="100"></iframe>



<h2 class="wp-block-heading" id="④htmlの中身を確認-フィードバック"><span id="toc5">④htmlの中身を確認、フィードバック</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwnNAmIsQBf3rJ0upSkHkDroMCrmRdambeCFpIsGORADWia8h2Z42OBGn4C10spEkQ8/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑤掛け算を行う"><span id="toc6">⑤掛け算を行う</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbzhUejYKa130J4UeK4dr4BggjP4sf33RGopNOWVpecn9U0x7oMWCeu8Ect8q9Q-XNS_-A/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑥チェックボタン-ラジオボタンの使い方"><span id="toc7">⑥チェックボタン、ラジオボタンの使い方</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbzxMawSGHqDcREdFj2scaXnNcxbCEyRQcHs-DrEplzZsdytoCixiVUKwUUq9K-eajQ_/exec" width="300" height="200"></iframe>



<h2 class="wp-block-heading" id="⑦チェックボタンでの分岐"><span id="toc8">⑦チェックボタンでの分岐</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbyJse_kLgRfqgYyWirSaZdar4-1NlMTwtAU4lk0nOV0ODtWLrRjPwWAcIcTjFlGtVy9/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑧送料無料などの分岐"><span id="toc9">⑧送料無料などの分岐</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbx4MhM82BaIOzJ-4st8KHKv9BkYo2l728AKbrD0Wz7IIPGUzL8D4lWkNk1Pd4UDFzb7/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑨時間での分岐"><span id="toc10">⑨時間での分岐</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwTzBrrJdZnGSO0M96E0FJBubx7wIDyNGGs3YwaDrTtPyVXs8uMCTo1QXLUzzXC7yZr/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑩工事中"><span id="toc11">⑩工事中・・・</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwGE6HsnR3wiJmtBZzcBxCIfTKb9M373Owur4f6SmpxKP72q1b5HgB1bC7w4RL7XkX_/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑪マウスオーバーでコメント"><span id="toc12">⑪マウスオーバーでコメント</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwGnoovlCeOgh5t5abiCDJ730SB2ZGzIXEe-wJGEXtJYyK7lwKDyuAicTaj01aGIZh5/exec" width="600" height="500"></iframe>



<h2 class="wp-block-heading" id="⑫テキストファイルの読み込み"><span id="toc13">⑫テキストファイルの読み込み</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwlyuXV3KMrVjJZ4uOri_vjfOEDvyeG44iTk4FJOXBPY3kDcd1NoDb9sMa7Pd6Q3XY_/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑬写真の添付"><span id="toc14">⑬写真の添付</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbzyzyBJKR7Z9FDdY4nvNR9Vg4vZ0iPNlTWdLoy2Xjjsv2kcDlUIBLOoLPAFERT9KZGO/exec" width="600" height="200"></iframe>



<h2 class="wp-block-heading" id="⑭文字列のソート"><span id="toc15">⑭文字列のソート</span></h2>



<iframe loading="lazy" src="https://script.google.com/macros/s/AKfycbwqJBlDuWgGQSE1SvBafUYodxu6RZoRAqkYQQ4zjm16UWqFAvhQBN2fwidA-iK4tMRP/exec" width="600" height="500"></iframe>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/gas_web-application-collection/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
