絞り込み条件を変更する
検索条件を絞り込む
有料ブログの投稿方法はこちら

すべてのカテゴリ

75 件中 1 - 60 件表示
カバー画像

納品されたGAS付きのスプレッドシートを有効にする

納品させていただいたコード(テキストファイル(txt拡張子のファイル))を実際に、機能を付けたいスプレッドシートでご利用いただくための手順をご紹介します。ー用意していただくものー・納品されたGoogleAppsScriptのコード(テキストファイル)・インターネットに繋がったWEBブラウザ(Chrome, Edge, Safariなど)・Googleのアカウント・機能を有効にしたいスプレッドシートそれでは、納品させていただいたコード(テキストファイル)をスプレッドシートでその機能を有効にする流れとして大まかに・「スプレッドシートにコードを設定する」・「コードによる機能が有効になっているか確認する」に分けて説明させて頂きます。スプレッドシートにコードを設定する1. 利用したいスプレッドシートを開いて頂いて、コードを書き込めるページを表示する。① 開いたスプレッドシートのメニューから「拡張機能」を選択、次にその中の「Apps Script 」を選択してください。② すると別のタブにて、GoogleAppsScriptをプログラミングできるページ(エディタ)が表示されます。2.  先ほど開いたエディタに納品させて頂いたコードを設定する。① 納品させて頂いたコードのテキストファイル(txt拡張子)を開いて頂き、書かれているプログラムを全て選択し、コピーして下さい。② 先ほどのGoogleAppsScriptのエディタのページに戻り、元々書かれているプログラムがありましたら全て削除してください。何も書かれていないエディタに、先ほどコピーしたプログラムのコードを貼り付けて下さい。そして、「
0
カバー画像

納品されたGoogleAppsScriptのコードを実行するまで

納品させていただいたコード(テキストファイル(txt拡張子のファイル))を実際にご利用いただくための手順をご紹介します。ー用意していただくものー・納品されたGoogleAppsScriptのコード(テキストファイル)・インターネットに繋がったWEBブラウザ(Chrome, Edge, Safariなど)・Googleのアカウントそれでは、納品されたコードをご利用するための流れとして、大まかに「コードをセットする」と「コードを実行する」に分けて説明させて頂きます。<コードをセットする>1. GoogleAppsScriptのサイトにアクセスします。ココナラのブログでは、外部のURLを載せることができないため、「GoogleAppsScript」と検索エンジンにて検索する方法でご案内させて頂きます。① 検索エンジンにて「GoogleAppsScript」と検索し、Googleのドメインである検索結果をクリック。②「start scripting」と書かれたボタンをクリック。③ 使用するGoogleアカウントを選択する。(すでにログインしている場合は、表示されない)① GoogleAppsScriptを管理するメインページが表示れたら、「新しいプロジェクト」と書かれたボタンをクリック。② GoogleAppsScriptのコードを作成、または編集するページ(エディタ)が表示される。2. 納品されたコードのファイルを開き、内容(コード)をコピーする① 元々書かれているコードは全て削除する。② 納品されたコードのファイルを開く。③ そのコードを全て選択(ショートカットのWin、Linux
0
カバー画像

Google Apps Scriptは便利!!

デジタル時代の魔法の杖で皆様の発信をサポート「Digitarod」です。X(Twitter), BlueSky, Instagramなどの自動投稿ツールの開発を行っています。私が、自動投稿ツールの便利さに気が付いたのは、Google Apps Scriptの便利さ知ったからです。Google Apps Scriptとは?みなさん、Google Apps Scriptって聞いたことありますか?これは、Googleが提供する無料で使えるプログラミング言語なんです。えっ、プログラミングなんて難しそう?大丈夫です!Google Apps Scriptは、JavaScriptという、比較的簡単な言語をベースにしているので、初心者でも比較的簡単に始められます。しかも、Googleの様々なサービスと連携できるのが特徴なんです。例えば、Gmailで、特定の条件に合致するメールが来たら自動でラベルを付けたり、タスクを作成したり、Googleスプレッドシートのデータを元に、自動でグラフを作成したり、PDFファイルを生成したりGoogleフォームの回答内容を、自動的にGoogleカレンダーに登録したりなどなど、様々な自動化が可能になります。まるで魔法のような便利さですよね!特に驚いたのは、毎日決まった時間に、Google Apps Scriptの関数を実行する機能があることです!特別なサーバもいらずに、時間を指定して、実行することができるため、SNSのように毎日投稿するようなツールには最適です!さらに、AIを活用することで、投稿がより便利になります!毎日、投稿内容を考えては発信をしていたのですが、G
0
カバー画像

【GAS】スプレッドシートの情報をYahooショッピングAPIを使って商品登録する方法

実現できることYahooショッピングへの商品登録をスプレッドシートへ追記するだけで完結しますYahooショッピングの商品登録APIを使ってスプレッドシートにある”update”ボタンをクリックすると、そのタイミングで瞬時に登録できるようになっています。スクリプトを回すトリガーはそれぞれ設定可能です。裏側の登録をするスクリプトを回すと瞬時にYahooショッピングの商品ページに追加されます。なぜ作ろうと思ったかYahooショッピングへの商品登録の際にいくつか運用対処が必要(JANの文字設定など)で煩わしいな思っていたのと、楽天市場には商品登録したけどあれ?「Yahooショッピングに登録したっけ?」などと管理上の煩雑さを感じていたので YahooショッピングのAPIを調べたところ、簡単に実装できそうだったので「GAS(Google App Scriptを使って書いてみました)」是非、そういった課題をお持ちの方を本記事を参考に構築いただければと思います。YahooショッピングAPI利用にあたってご準備するもの①Google スプレッドシート(フリーアカウントでも可)②YahooショッピングのクライアントID・クライアントシークレット①Googleスプレッドシート側の準備Apps Scriptの画面へスプレッドシート及びGoogle Apps Script側の準備を記載していきます。「App scriptってなに?」という方へ端的にお伝えするとApps Script(スクリプト・コード)を書いてスプレッドシートを操作できるようにするものです。今回はApps Scriptを使ってスプレッド
0
カバー画像

GASって結局JavaScriptなの?

Google Apps Script、通称GASについての話題は、Webを使う多くの人にとってちょっとした関心事かもしれません。特に、「GASって結局JavaScriptなの?」という疑問を持つ方も少なくないでしょう。そこで、この記事ではGASとJavaScriptの関係を、専門用語を控えめにして、できるだけわかりやすく解説してみます。GAS(Google Apps Script)とはGASとは、Googleが提供するプログラミング言語のことで、Googleの様々なWebサービス(Googleドキュメントやスプレッドシート、フォームなど)を自動化したり、カスタマイズするために使われます。たとえば、スプレッドシートに情報を自動で整理したり、フォームの回答に基づいてメールを自動送信するといった作業をプログラムで行えるようにするのがGASの役割です。GASとJavaScriptの共通点GASは、その根底にJavaScriptを持っています。ですから、もしあなたがJavaScriptに少しでも触れたことがあるなら、GASを学ぶのは意外とスムーズかもしれません。変数の使い方、ループ(繰り返し処理)、条件分岐といった基本的なプログラミングのコンセプトが、GASでも全く同じように使われます。GASとJavaScriptの違いしかし、GASがJavaScriptと完全に一緒かというと、そうではありません。GASはGoogleのWebサービスと密接に結びついており、そのための特別な機能やコマンドが用意されています。この点が、通常のWebページ作成などに使われるJavaScriptとは異なる大きな
0
カバー画像

Tasker、Google Apps Script、Switchbotロックで実現する手ぶらで自宅のカギを開けるスマートな仕組み

スマホアプリのTaskerとGoogle Apps Script、そしてSwitchbotロックを利用して、外出先から帰ってきたときに手ぶらで自宅のカギを開ける仕組みを試してみました。この仕組みを使うと、自宅に帰る際に鍵を取り出して開錠する手間が省け、便利さを実感できます。 Taskerは、スマホ上の状態や時刻などのイベントをトリガーにして、様々なアクションを実行するアプリです。Switchbotロックは、スマートロックの製品で、自宅のカギを遠隔から操作したり、指紋認証で開錠したり、様々な利用方法で制御可能な製品です。手ぶら開錠の仕組みまず、処理の流れは非常にシンプルです。スマホが自宅のWifiに接続したとき、それがトリガーとなりHTTPリクエストがGoogle Apps Scriptに送信されます。Google Apps Scriptは受け付けたリクエストをもとに、SwitchbotのAPIにHTTPリクエストを送信し、Switchbotのロックが開錠される仕組みです。 ただし、Switchbotのスマートロックを制御するには、事前にトークンを発行し、いくつかの準備を整える必要があります。これにより、Google Apps ScriptからSwitchbotを操作できるようになります。実装結果Wifi接続を検知してから若干のタイムラグが発生することはありますが、全体としては良好に機能しています。スマホを再起動した場合でも、今回の処理が動作しますが、在宅時に開錠されることに関しては特に問題ありません。Wifiの接続が切れた場合、施錠するといった使い方もできますが、施錠が確実に実
0
カバー画像

【まとめ】プログラミングを未経験で勉強するときのポイント

おはようございます。じゃそです。本業に加えて、副業することを考えている人の中に、「プログラミングをやってみようかな?」「何か自分でモノを作ってみたいな。」と思っている方も多いのではないでしょうか?または、今の仕事が嫌で、転職を考えた時に「エンジニアになりたい」と考える人もいらっしゃるでしょう。私の周りでも、未経験からエンジニアに転職している人は結構います。では、どうやってプログラミングを勉強していけばいいのか。この記事では、プログラミングを未経験から勉強するときのポイントについて、ご紹介していきます。あくまでも、私の意見になりますので、他にもいいアイデアがありましたら、ぜひコメントお待ちしております!オススメなプログラミングの勉強法は?まず、プログラミングを勉強する方法にはどのようなものがあるのか見ていきましょう。・プログラミングスクールに通う・Udemyなどのオンラインの講座を受ける・書籍で勉強する・エンジニアをやっている人に教えてもらう・独学で勉強するパッと思いつくところで言うと、この辺りになるかなと思います。この中で未経験者がまずやってみるところとしては、・エンジニアをやっている人に教えてもらう・独学で勉強するかなと思っています。仕事にしたいと思っているのであれば、楽しくできることが大切だと、私は考えています。だからこそ、まずは試しに触ってみて、自分が楽しくできるのかというところを判断する必要があります。エンジニアという仕事は、私の体感では「調べる5割、考える4割、書く1割」という感じです。実際にコードを書いている時間は、本当に短かったように思います。【調べる】【考える】
0
カバー画像

ソースコードはかく語りき

最近の言い方で言うと、・君のソースコードがささやいている・ソースコードは君に語りかけるとかでしょうか。画像は、Image Creator 提供 DALL·E 3です。ExcelVBAやGAS(Google Apps Script)の作成支援、修正などを行っていますと、これまで使っていて、動かなくなったものや、今はもう使われなくなったコードを目にすることがよくあります。今でこそ機能していませんが、かつては動いていた。もしくは動かそうと努力した後が垣間見えます。・ああ、これは令和対応をしたんだな・祝日対応しようとして諦めたんだな・あと一歩なんだけどなかつてこのファイルに触れたことのある人が、努力し、研鑽し、切磋琢磨した後が痕跡として残っています。多分消しても動作に影響はないんだけど、いつか使うかもしれないから残しておくか。そういう気持ちで今に至るコードたちです。こういうところから新しいアイディアが生まれたり勉強になることも少なくないので、私も無駄だからとバッサリ切らずに残しておくことが多いです。そして、本当にまれにですが、なぜか変更すると思うとおりに動作しなくなる箇所があったりします。どう考えても使われていないように見えて、実際には使われているケース。神社やお寺、お地蔵さまや鳥居みたいですね。最近はAIもコードを作成しますので、それも残すともうごちゃごちゃして本当に読める人でないとメンテナンスもできない状態に。ソースコードをAIに渡してきれいにしてくれる時代も来ますかね。
0
カバー画像

【GAS】スプレッドシート直下にフォルダを生成する

■はじめにここ数日、フォルダ生成の記事にアクセスが多かった様なので、フォルダ生成系の記事をちょっと追加で書いてみようと思います。■スプレッドシートの情報を取得するまずは、使っているスプレッドシートがGoogleDrive内のどこに存在するか確認する必要がありますので、自分自身のファイル情報を取得します。const book = SpreadsheetApp.getActiveSpreadsheet();const bookID = book.getId();const file = DriveApp.getFileById(bookID);■取得したファイル情報の親フォルダのIDを取得するgetParentsメソッドを使う事で、親フォルダの取得ができます。複数ファイル等がある場合はhasnext()とnext()を組み合わせるんですが、親フォルダは1つしかないので、next()だけで取得します。const dir = file.getParents().next();const dirID = dir.getId();■親フォルダの直下に新規にフォルダを作成する以下の処理を行う事で、取得したフォルダ直下に新しいフォルダを作成します。const drive = DriveApp.getFolderById(dirID);drive.createFolder('フォルダ名');厳密にやるのであれば、フォルダ作成前に、フォルダの重複チェック等も処理に入れると良いでしょう(´ω`*)■最後に今回のような仕組を使ったツールの作成もできますので、 お困りの事ございましたら、お気軽にご相談く
0
カバー画像

【GAS】セル範囲の保護と、解除について

■はじめに久しぶりの投稿はセル範囲の保護と、解除についてです。セル範囲の保護はちょいちょいネット上でも記事書いてあったんですが、セル範囲の解除についてはほとんど記事がなかったので、備忘録も兼ねて書いてみる事にしました。■セル範囲の保護セル範囲の保護をする場合は、割と情報でてるので書くの恐縮なんですが、以下の様なソースで対応可能です。const book = SpreadsheetApp.getActiveSpreadsheet();const sheet = book.getActivesheet();const protect = sheet.getRange(row,col,row2,col2).protect();//オーナーは必ず権限を持つので注意protect.addEditor(email);     //単一ユーザー登録時protect.addEditors(emailarry);   //複数ユーザー登録時、配列を渡すprotect.setDomainEdit(true);   //GWでドメインユーザーを許可する場合■セル範囲の保護の解除セルを解除する場合には以下の様なソースを使います。const book = SpreadsheetApp.getActiveSpreadsheet();const sheet = book.getActiveSheet();const pType = SpreadsheetApp.ProtectionType;const protect = sheet.getProtections(pType.RANGE);for(let i
0
カバー画像

PowerApps楽しい

こんばんは、とーますです。少し涼しくなったので過ごしやすくて少し眠いですね。今日はPowerAppsのお話です。PowerAppsいいですね。便利?というとちょっと断言できるわけではないのですが、グループウェアの中心として利用しているのであれば使い倒したほうが良いと考えました。もちろんお金をかけて別のツールやサービスで実現できることもあるが、コストも膨れるしSaaS過多になって管理も大変になるのでできるだけシンプルに使えるものは使っていく精神でできたらと思ってます。またユーザーに対しても多くのSaaSを使ってもらうより良いかと思います。PowerAppsは最初全然わからなかったのですが、最近だいぶわかってきました。まずは前回も話したのですがDataverseがないと動かないものがあり、モデル駆動型のものは作れないですね。SharePointのListsから作るとモデル駆動型のものもたしか作れるのですが、SharePointをそのままPowerAppsの画面を作るって、昔のAccessのようにデータベースに画面を付けただけって感じであまり意味ないように感じました。またSharePointのListsをそのままPowerAppsにするとSharePointへの編集権限が必要になるためSharePointへ直接アクセス可能になってしまい権限のコントロールが甘くなります。そのため私が目指したのはPowerApps→PowerAutomate→SharePointでPowerAutomateに権限を委譲することでアクセスコントロールする方法を考えました。色々調べてどうにかこのスキームでデ
0
カバー画像

GASのエディタが使いやすくなっている

こんばんは、とーますです。みなさんGASは使ってますか?GASはGoogle Apps ScriptというGoogle上で使えるjava scriptのようなものなのですが、最近久しぶりに書いたらエディタが結構進化してました。公式ドキュメントを特に見ずに書きます。これまでもあったと思うが私が個人的にうれしかったものを書きます。うろ覚えですが少し適当に書きます。・同一の変数名が分かりやすくドラックされる・呼ばれていない変数は少し薄く表示される・Functionに飛ぶことができる・インデントがきれいになる・インデントで処理のスコープが分かりやすく縦位置補助される・最近の見た目はだいぶきれいに洗練されてきている・etcもっとかけると思ったら以外にかけなかったですね。Debugもどんどん見やすくなっていてブレークポイント適当に選んでおいて走らせて使ってもよし、途中のデータも見やすいしObjectのネストしたデータの中身も見やすいのでよし。わざわざPCにソフト入れてコード書いてデプロイしてとかDebugしてとかそういったことをせずWebブラウザですべて完結できるのでかなり使いやすいと思ってます。最近ではクライアント系のエディタも進化していると思うので多種多様の開発環境があるのかと思いますが、私としては弘法筆を選ばずという言葉がある通りどんなものでも能力がはっきできるほうがよいと思うんですよね。昔はデータセンターによく行くこともありましたが、サーバールームに持ち込める物は、脳(記憶)のみでした。なので脳にどれだけため込んでおくかが重要でした。 SQLステートメントが書けないとか、Linux
0
カバー画像

Google Apps Script でできること

ココナラで Google Apps Script (GAS) の開発を請け負っている方は沢山いらっしゃいますが、そもそも Apps Script が用途に合っているかどうかを依頼者自身で判断することは些か難しい事があるのではないかと思います。そこでソフトウェア開発者ではないビジネスユーザを対象に、Apps Script を利用してやりたいことが適切に実現できるか否かを判断するために重要なポイントを、できるだけ平易簡潔にまとめてみます。※分かりやすさのため、限定的な機能や特殊な手段でのみ実現できることは省略しています。正確な情報は公式サイトなどをご参照ください。 Apps Script とは Google が提供するクラウドローコードプラットフォームです。JavaScript を使って Google サービスの拡張・統合・タスクの自動化・簡易 Web アプリの作成ができます。よくある使い方・スプレッドシートのマクロ・カスタム関数・アドオン Excel VB マクロの代わりにスプレッドシートでは JavaScript マクロを組むことができ、これは Apps Script の一種です。単純な操作であれば「マクロを記録」することで自動作成することもでき、これが最もシンプルな使用例です。同様に、独自のスプレッドシート関数を作ることができ、外部データを参照したり複雑な計算式を一つの関数にまとめて利用できます。アドオンとしてスプレッドシートの画面内に独自のメニューやサイドバーを追加することもできます。これらは全て Apps Script に紐づけたスプレッドシートの中でのみ利用できます。・
0 500円
カバー画像

【GAS】オブジェクトの宣言タイミングについて

■はじめに 今回はSpreadsheetAppや、CalendarAppなどのオブジェクト宣言タイミングについて説明していきます。■GASのオブジェクトを宣言すると重くなりやすい GASのオブジェクトは、宣言する度に結構時間がかかります。 無料GmailのGASにはプログラムの稼働時間に6分という制約があるので、いかにプログラムの稼働時間を短くするか?ってのがキモになってきます。■グローバル変数、グローバル定数でオブジェクト宣言をしてしまう プログラムやってるとあんまり推奨されないやり方なのかもですが、 GASの場合は可能な限りGASオブジェクトの宣言を減らす必要があります。 また、「SpreadsheetApp」や「CalendarApp」などは1回呼び出しておけ ば事足りる上に変動することはないので、グローバル定数宣言してしまう と安定しやすいです。■サービスのご紹介 こういった点を意識しながらGASの開発しております。 GASでの業務改善のご要望ございましたら、 お気軽にご相談いただけると幸いです(´ω`*)
0
カバー画像

【GAS】カレンダーコントロールの基礎

■はじめに 今回はGASのカレンダーコントロールを使って、特定の日付の予定を取得する処理を説明していきたいと思います。■まずはソースからfunction cBasicControl(){  const cCalendar = CalendarApp.getCalendarById('カレンダーID');  const dDate = new Date('2023/08/9');  const cEventList = cCalendar.getEventsForDay(dDate);  for(let i in cEventList){    Logger.log(cEventList[i].getTitle());  };};厳密には汎用性を上げる為に、私はもうちょっと違う書き方してるんですが、基本的なコードは上記の様になります。■カレンダーオブジェクトの宣言以下のコードで、何処のカレンダーを使用しますよと宣言しています。const cCalendar = CalendarApp.getCalendarById('カレンダーID');カレンダーIDの部分には、使用するカレンダーIDを入力しましょう。※カレンダーIDの取得方法は次回にでもご案内しますね。 これで、カレンダーオブジェクトが利用可能になりました。■指定した日付のイベント一覧を取得する次に指定したカレンダーの特定の日付のイベント一覧を取得します。  const dDate = new Date('2023/08/9');  const cEventList = cCalendar.getEventsForDay(dD
0
カバー画像

【GAS】2次元配列の操作方法

■はじめに今日は自分の備忘録も兼ねて書いてみたいと思います。結構使うんですよ、2次元配列。■宣言方法2次元配列を利用する為に空の配列を宣言したい時は以下のような宣言をします。const arrTest = [];で、これの宣言が終わったら、追加するわけです。■要素を追加する方法追加方法は以下の様にします。arrTest.push([要素1, 要素2, 要素3.....]);必要な要素は作るものによって変わるので、事前に変数とかで取得しておきましょう。■要素を表示する方法取り出したい時は、arrTest[x][y]で指定してあげれば、取得できます。■最後にこんな機能も使いながら、開発案件お受けしております。何かありましたら、お気軽にご相談ください♪
0
カバー画像

【GAS】Discordへ通知する為の関数

■はじめに前回はDiscord通知BOTを作る為の事前準備を実施しました(*'ω'*)今回は、実際にBot通知する為の関数について説明していきたいと思います。■ソースコードまずはソースを見てみましょう(´ω`*)function subDiscordBotPost(strWebhock_URL, strUserName, strContent) {  const payload = {    username : strUserName,    content : strContent  };  UrlFetchApp.fetch(strWebhock_URL, {    method: "post",    contentType: "application/json",    payload: JSON.stringify(payload)  });}実はもうこれこのままコピペすれば、ほぼそのまま利用できますw■関数の簡単な説明まずは引数について。strWebhock_URL>前回のDiscord側でコピーしておいた、>WebhockURLを渡します。strUserName>BOTのDiscordに通知されるユーザー名です。>好きなキャラとかにすると、なかなかエモくなります(´ω`*)strContent>発言内容です。>事前にSpreadsheetや、Googleカレンダー、Gmail等から>条件に合う内容をメッセージ整形しておいて、値を引き渡します。■実際に発送してみるとこんな感じDiscordでプロジェクトとか、サークル利用している方は、こんな機能を追加できると、スケ
0
カバー画像

【GAS】Discordへ通知するBOTを作る為の準備

■はじめに前回は大したこと書いてなかったので、今回は少し前に書いた、Discord通知用BOTを作る為の準備と関数を書いていきたいと思います(*'ω'*)■Discordの通知用BOTを作るまずは、Discord側で通知用のBOTを作る必要があるので、BOTを作りたいサーバーで右クリックをします。(赤枠部分参照)そうすると、右クリックメニューが出るので、「サーバー設定」、「連携サービス」の順番で選択していきます。選択すると、画面が切り替わるので、「ウェブフックを作成」をクリックします。まだBOTを一つも作ったことが無い場合は、ウェブフックがありませんと出るので、「ウェブフックを作成」を選択しましょう。BOTが出来上がりました!アイコン、名前は好みで変更してみて下さい(*'ω'*)ウェブフックURLをコピーという機能がありますが、これ後でGAS側のプログラムで必要になるので、クリックして控えておくか、必要な時にクリックしてコピーするようにしましょう。以上が事前準備になります(*'ω'*)そんなに難しくはないので、もし興味があったらチョロっと作ってみて下さいね(∩´∀`)∩次回はGAS側の応答プログラムについて解説していきます。■次回はこちら
0
カバー画像

新しいサービスを出品しました!Googleユーザーは必見です!

僕はこれまでMicrosoft傘下の大手IT企業で勤めており、その後ベンチャー系インフルエンサー会社の経営企画室として社長に引き抜かれて勤務をしていました。このホワイト→ブラックに移った大きい落差・環境の中でベンチャーならではのむちゃぶり対応や、サービス内容変更の調整など怒涛の毎日をサバイブできた理由の1つに、「ITによる自動化」がありました。・時間管理・メールチェック:送信・資料作成・顧客管理など、ありとあらゆる場面で、プログラミングやITのスキルが活用することができました。そして周りを見渡せば、そのスキルを持っているのはこのベンチャー企業では僕だけだったと言うことに気が付きました。そこで、職場のいろんな人にワークフローの自動化や効率化のツールの使い方等を教えていく中で、「自分はこれが向いている」と感じたり、その教えたことで役に立っている人を見るのが好きになっていきました。もっと誰かの役に立ちたいと思い、今回、サービスとして出品してみることにしました。Googleのサービス間であれば、GoogleAppScriptは超優秀に働きます。例えば、Gmailから届いたお問い合わせ内容をもとに、スプレッドシートにクライアント情報入力し、営業担当のGoogleカレンダーにクライアントデータシートを連携します。同時に、クライアントデータをスプレッドシートのテンプレート或いはテンプレドキュメントみたいなものがあれば参照し、新規作成の上データを反映、Googleドライブ内の営業担当のフォルダの中にクライアント名ファイルとして格納することなども可能で、実際に作成していました。こういった作業は意
0
カバー画像

GASでアプリケーション作ってみた。

ExcelVBAでいろいろアプリケーション作っていましたが、試しにというかお客様からのご依頼内容がExcelでは無理というか、ちょっと難しい内容でしたので、試しにGAS(GoogleAppsScript)で作ってみました。いまさらの感は否めませんが・・・スプリクトなので言語に慣れるまで、ちょっと戸惑いましたが解ってしまうとなかなか快適です。当初、頭の中がVBAなので????となって理解に苦しみましたが、慣れるとこっちのほうがいいかも、てな感じです。これもまた道具なので、得意不得意があります。サーバー起動なのでデータ量や処理速度にはあまり期待できないようです。得意技はやはりネットとの親和性でしょう。特に入力フォームを使ってどこからでもデータを集められるのは素晴らしい。具体的には下記のような作業の効率化の可能性があるでしょうか。ホームページ上に予約フォームをオリジナルで作成する必要はなくGASで作成した入力フォームを入れ込む事ができる。通常Webでデータを扱うアプリケーションを作成する場合、サーバーを準備したり、言語によっては作成する為にいろいろ準備が必要になります。そこまで大ごとにしなくても、簡単に作成できるのは素晴らしい。その他自動入力されたデータはスプレットシートで管理できる。必要ならGoogleカレンダーに自動入力管理が出来る。確認メール(サンクスメール)の自動送信ができる。など、いろいろ可能性があります。予約管理業務報告管理ホームページ上からの注文ホームページ上からの情報収集イベントの案内と出欠確認etc・・・必要と発想ではいろいろ出来そうです。問題もあります。Excel
0
カバー画像

【GAS】サイトの更新をチェックしメールで通知する

はじめに初めまして.ココナラでプログラミングや語学など様々なサービスを展開中のodrag0nと申します.早速ですが今回はGASを使用して,「サイトの更新をチェックし、更新されていたらメールで通知する」するというプログラムを書いてみたいと思います.GASとは?Google Apps Script(GAS)は、ひとことで言えばGoogleが提供する各種サービスの自動化/連携を行うためのツールです。GASを使うと、Gmailやカレンダー、Googleスプレッドシート、Googleドライブなど、Googleが提供する様々なサービス上で処理を自動化したり、複数のサービスを連携させたりできます。ExcelやWordなどでマクロやOfficeスクリプトなどを使ったことのある方は、それらのGoogle版だとイメージしていただければいいと思います!GAS のメリットとして、学習コストが低いこと、開発環境の構築が不要なこと、Google サービスとの連携が簡単であること、スクリプトの実行が自動化できることなどが挙げられます。活用例としては,Googleスプレッドシート上に設置したボタンのクリックで文字列を一括変換したり、GoogleスプレッドシートのデータをGmailに取り込んでメールを自動作成・送信したりすることができます。プログラムの流れ今回実装するプログラムの流れとしては以下のようになります.1. 監視するサイトのURLを設定する。2. 最新のコンテンツを取得する。3. 前回のコンテンツと比較する。4. 変更があれば、メールを送信する。早速実装を始めてみましょう!
0 500円
カバー画像

伝書鳩オンライン

 よく考えてみますと、いままで携わってきた通信は、ローカルや専用線での直接通信(もしくは隠蔽されて気にならない)が主でした。 一般的なパソコン環境やスマートフォンなどでインターネットを利用して端末間の通信を実現しようとするとなかなか面倒なようです。 実験的に無償で利用できそうなものを3点試してみました。データー送受信、文字チャットのような例です。1.WebRTC NTT comの旧SkyWayを試してみました。サンプルもサクッと動作し反応性も抜群です。おそらくP2Pできるのは限られた環境で、中継サーバーを使用することになるのだと思います。SDK依存になるので障害時は自分だけで解析が難しいかもしれません。2.Google GAS GASを中継サーバーにしてWebサービス公開で試してみました。一次記憶はなんでもいいのですが、スプレッドを使用しました。GETでID別のシートにデーターをセルに積んだり崩したりする感じです。これをXMLHttpRequestで送受します。 GASは一回のトランザクションが数秒かかるので反応性はチョット緩慢ですね。Googleアカウントで気軽に試すことができるは便利です。3.レンタルWebサーバー レンタルWebサーバーを中継サーバーにしてみました。SSLに対応してPythonやPHPのCGIが使えることから、XREAというのを試してみました。 基本はGASと同じですが、反応性は申し分ないです。一時記憶はファイルにしました。 無償では広告を埋め込む必要があり、実際のデーターよりこの部分の容量が大きくなりそうです。 XMLHttpRequestで広告のHTM
0
カバー画像

【GAS】Formの回答をDocsに代入,PDF化してMailで送信

はじめに初めまして.ココナラでプログラミングや語学など様々なサービスを展開中のodrag0nと申します.早速ですが今回はGASを使用して,「Formの入力をDocsに入力し,PDF化してMailで送信」するというプログラムを書いてみたいと思います.GASとは?Google Apps Script(GAS)は、ひとことで言えばGoogleが提供する各種サービスの自動化/連携を行うためのツールです。GASを使うと、Gmailやカレンダー、Googleスプレッドシート、Googleドライブなど、Googleが提供する様々なサービス上で処理を自動化したり、複数のサービスを連携させたりできます。ExcelやWordなどでマクロやOfficeスクリプトなどを使ったことのある方は、それらのGoogle版だとイメージしていただければいいと思います!活用例としては,Googleスプレッドシート上に設置したボタンのクリックで文字列を一括変換したり、GoogleスプレッドシートのデータをGmailに取り込んでメールを自動作成・送信したりすることができます。プログラムの流れ今回実装するプログラムの流れとしては以下のようになります.1,フォームで回答者から回答を受け取る2,回答をプログラム上で変数に代入する3,オリジナルドキュメント(雛形)のコピーを作成4,コピードキュメントに2の変数を代入5,コピードキュメントのPDFを作成6,5をメールで送信早速実装を始めてみましょう!
0 500円
カバー画像

商品名と商品IDを取得してスプレッドシートに表示させてみる#01 (ShopifyAPI+GoogleAppsScript)

こんにちは。Shopify専門エンジニアのまりんです。今回はテーマのカスタマイズではなく、Shopify APIとGoogleスプレッドシートを紐づけようと思います。まず手始めに商品IDと商品名をボタンをクリックしたらスプレッドシートに反映できるようにしてみました。✔️事前準備 API発行アクセストークンをまだ発行していない場合は下記の手順で作成しておいてくださいね。①アプリ>アプリと販売チャンネルの設定>ストア用カスタムアプリ②アプリを作成アプリ名はなんでもOKです。③アクセススコープの設定使用する項目にチェック入れてください。(例)商品名&商品IDを取得する場合:商品管理:read_productsのみに✔️④アプリをインストールAPI資格情報のタブをクリック。Admin APIのアクセストークンが発行されるのでコピーします。一度しか表示できないので忘れないようにどこかに保管しておいてくださいね。その下のAPIキーもあとで使用するので一緒にコピーしておきます。また、設定タブに記載されているバージョンも後ほど使用するので控えておきます。API アクセストークン:shpat_xxxxxxxxAPIキー:8gw2xxxxxxxxxxバージョン:xxxx-xxこれで事前準備は完了です。✔️GASとShopifyを紐づけるStep1 スプレッドシートを作成新規スプレッドシートを作成して「Master」というシートを追加する。一応わかりやすいように1行目に見出し入れておきます。A1・・・商品IDB2・・・商品名Step2 スプレッドシート>App Scriptを開くStep3 
0
カバー画像

【Gmail】受信したメールに「ラベル」を付けて整理する

【ご依頼者向け】Gmailのフィルター機能で、受信したメールに自動で「ラベル」を付けられます。対象のメールは検索条件で指定できます。Gmailには「フォルダ」の概念がありません。 代わりに、受信したメールに「ラベル」を付けて整理することができます。 1つのメールには複数の「ラベル」を付けて分類することも可能です。フィルター機能で、受信したメールに自動で「ラベル」を付ける(1)Gmailを開き、検索窓の右側にある検索オプションを表示する(2)キーワード、送信元メールアドレス等で検索条件を指定して、「フィルタを作成」をクリックする(3)[ラベルを付ける]をチェック、新しいラベルを作成するラベル名を入力して、「作成」をクリックする「フィルタを作成」をクリックする。完了です![設定]→[フィルタとブロック中のアドレス]で、作成したフィルタの確認、再編集ができます。 また、ラベルは色を変更できます。
0
カバー画像

GASでマイマップを作る

こちらは先週あげた最新の動画です。GASを使うとGoogleマップからルートの検索ができて、画像も作れます。出張先の居酒屋マップを作って、そこにいくために頑張る!って業務の効率化とは言えないですかね😆なにか地図に関係した自動化をご希望でしたら、ぜひご相談ください。
0
カバー画像

Google Apps Scriptの商品登録しました!

私は、Webの業界でたくさんの仕事をしてきましたので、デザインもできるのですが、GASの開発もできるんです!昨年からYouTubeのチャンネルを立ち上げ、GASで業務効率化する動画もあげてきました。こんなこともできますよ、というのをたくさんあげてきました。こっちはばっちり顔出し😁ぜひ、見ていただいて、作って欲しい!というものありましたらメッセージからでもOKですのでご連絡お待ちしています!こちらは視聴回数900回越えの動画。Googleフォームで問い合わせがきたことをLINEに通知するGASを紹介しています。商品はこちら
0
カバー画像

【事例紹介】Google Apps Scriptを使って自己紹介カードをGoogleスライドで作成する

こんにちは!KCompany代表のケータです!本日は「Google Apps Scriptの相談受けます」の出品サービスでの事例を本日はご紹介させていただきます。こちらの記事の最後に、そのまま使えるファイルも共有しておりますので、ご利用になられたい方はぜひご購入いただければ幸いです。Google Apps Scriptを使って自己紹介カードをGoogleスライドで作成するスクリプトのご依頼の流れとあるイベントのために、Googleフォーム・スプレッドシート・スライド・GASを活用した自己紹介カードを作成することを思いつき、まとめサイトなどで該当する内容をみつけたものの、作成方法が分からないので作成方法を教えてほしい、というご相談でした。まとめサイトの内容を私の方でも確認し、自分で一度構築を行い、完成したファイルをお渡しし、その後ビデオチャットで45分ほどコードを1行ずつ解説いたしました(お客様の理解力が高く、ビデオチャットは当初60分予定でしたが、短く終えることができました)。その後、お客様ご自身で実装を行い、疑問点が一つでたものの、その疑問点もトークルーム内でのやりとりで解決いたしました。Google Apps Scriptを使って自己紹介カードをGoogleスライドで作成するスクリプトで実現したもの今回実現したいのは、下記のように、①Googleスライドでテンプレートとなるスライドを作成し、②Googleフォームで回答を受け付け、③GASを使って受け付けた回答の内容でスライド内のテキスト・画像を置換して自己紹介カードを生成する、といったものです。上記における「%」で囲ってる
0 1,000円
カバー画像

【そのまま使える】Google Apps ScriptとGoogleスプレッドシートで請求書を自動生成する

こんにちは!KCompany代表のケータです!本日は自分自身が使っている請求書の紹介をします!自分なりに工夫を重ねて、Google Apps ScriptとGoogleスプレッドシートで構築をしてみました。大まかな流れとしては、以下の通りです。①自社/顧客/案件の情報を入力します。②出力対象の案件を抽出します。③請求書のテンプレートシートから、請求書のシートを出力します。④請求書のシートをPDFとしてGoogleドライブへ保存します。実際には見て頂いた方が早いかと思うので、以下に一連の流れを動画にいたしました。いかがでしょうか。実際に使うには実際に使ってみたい!という方がいらっしゃいましたら、以下からぜひご利用いただければ幸いです。閲覧用のファイルを用意してますので、そちらをコピーし、ご自身の環境にてご利用いただくイメージになります。各種説明テキストもご確認頂けます。カスタマイズのご依頼についてこちらの記事に記載したTODOリストをカスタマイズしたり、その他Google Apps Script開発やGoogle Workspaceを活用したデジタル化推進のお仕事のご依頼について、ココナラで承っております。ちょっとしたお困りごとでも、一度お問合せをいただけましたら、折り返しご連絡いたします。このスクリプトへのアクセス
0 1,000円
カバー画像

【そのまま使える】毎朝自動更新されるTODOリスト (Google スプレッドシートとGoogle Apps Script版)

こんにちは!KCompany代表のケータです!本日は自分自身が日々使っているTODOリストの紹介をします!もし使ってみたいという方がいらっしゃったら、ページの最後の部分をご確認いただければ幸いです。「GASとスプレッドシートで動くタスク管理のためのTODOリスト」を作った背景出落ちみたいになってしまいますが、実は筆者はTODOアプリに詳しい方ではないです。どちらかというと、TODOアプリ自体の操作を覚えるのが面倒だな〜というような性分でして、メモ帳とかGoogle Keepとかを使ってました。(余談ですが、めちゃくちゃ忙しい時はアナログな付箋を使ってます)メモ帳やGoogle Keepは手軽で良いのですが、日々のルーチン業務とか翌日まで引き継ぐタスクが増えてくると、チェックボックスの更新がめんどだな〜と感じるようになりました。仕事柄スプレッドシートを良く使っており、GAS(Google Apps Script)をいじっていることから、じゃあこの組み合わせでTODOリストアプリもどきを作ってみるか、となったわけです。なお、世の中には様々なTODOリストのアプリがあるのは重々承知でして、おそらく今回のものなんかよりよっぽど優れてるものはあるとは思います。ただ、日頃から使いなてるUI/UXで、かつ自分好みに手軽にカスタマイズもしていけるというのは、ちょっとした利点になるのではないかな、と思ったりもしています。「GASとスプレッドシートで動くタスク管理のためのTODOリスト」の画面イメージ上記は、作業してる当日のイメージです。毎日行うものも書き出してるのですが、これらを翌朝、初期状態に
0 1,000円
カバー画像

相談を受けて開発したツイッターbotについてご紹介

以前、GASでツイッターbotの作成が可能かという相談を直接受けまして対応した際に作成したクラス図の紹介となります。私の対応のスタンスとしては、その場限りではなく、「長く使ってもらいたい」、「利用していくうちに新しいアイディアが湧いてくる」、「利用中に見えてきた改善点」などに対して、ある程度柔軟に対応できるよう、メンテナンス性を意識してほぼ必ずクラス設計を行います(完璧ではないですが、メモ書き程度に)。今回の場合は以下のような感じで検討いたしました。これからツイッターbotを作ろうとう考えている出品者の方の参考に少しでもなれば幸いです。スプレッドシートはこんな感じになっております。合わせて見ればどこでどんなことをやっているか何となく分かるかなとは思っております。ここまで記事を読んでくださり、ありがとうございました。質問・相談はいつでも受付ておりますので、気軽にお声掛けください。
0
カバー画像

安価で自動化プログラムを依頼する方法

こんにちは。ココナラで自動化プログラムの作成・販売を行っているPman00(ピーマン)です。▼プロフィールはこちらhttps://coconala.com/users/977677スプレットシートやExcel操作の自動化をココナラで依頼したい。けど…・自動化は高額なイメージがして、なかなか踏み出せない。・相談したけど予算より高額になって断念した。と言う方へ「安価で自動化プログラムを依頼する方法」を伝授します。その前に、1問だけ問題です。Q:プログラム作成の過程で最も作業工数がかかる工程はどこでしょう?次の3つから1つを選択してください。 A:プログラミング工程(コードを打ち込む工程) B:テスト工程(成果物の動作確認の工程) C:仕様検討工程(ツールの動作を決める工程)ほとんどのお客様が勘違いされているのですが、一番“カンタン”な工程は「A:プログラミング工程」なんです。そして、最も工数がかかる工程は「C:仕様検討工程」です。本題:安く自動化プログラムを作ってもらう依頼方法さて、本題に入っていきます。我々プログラマーに作業を依頼する際は「何をどうして欲しいのか具体的に説明する」事で、代金を安くする事が可能です。次のような依頼をしてください。お客様:以下のスプレットシートからGoogleカレンダーに情報を登録して頂きたいです。▼スプレットシートURLhttp://xxxxxxカレンダーの登録情報は以下を希望します。・カレンダー登録日:A列の日付・カレンダータイトル:B列+C列の内容・カレンダーの内容:D列〜F列の内容こちらでご検討可能でしょうか?プログラマ:内容を確認させて頂きま
0
カバー画像

Google Apps Script と ExcelVBA

以前から気になっていたGoogleAppsScript(GAS)を考察して、ExcelVBAとの違いや可能性について書いてみます。 特長 ①OSに縛られない。  インターネットに繋がる環境であれば、OSに縛られることなく使う事ができる。 ②各Google製品との連携が簡単に且つ密に出来る。 ③プログラミングによって自由に作成できる。 ④基本無料 懸念材料 ①インターネットが繋がらないと使えない。 ②クラウドサーバー側での動作なのでレスポンスが悪い。 ③フォームがExcelVBAのように込み入った仕様が不可かな。 GoogleAppsScript(GAS)はとてもよく出来たもので様々な可能性を感じています。 ネットワークでの各データ共有はより簡単に出来るようになるでしょう。 結論としては、全く違う「道具」だなあと思います。 Excelとスプレッドシートは同じ「表計算ソフト」ですが、それを拡張する考え方がまるで違うように感じました。 自分のように「Excel」の「Sheet」をデータベースと考えている者にとっては、是までと全く違った発想をする必要がありますね。 GASはまだまだ未知のものですので、色々創ってみてその可能性を探ってみたいと思います。 GASのプログラミング言語とExcelVBAを比較するとVBAの古さを感じますね。 でも、プログラミングの基本的なところを学ぶにはいいですね。 新しい言語はいろいろな所が省略されていて逆にわかりづらいかなあと思うところもありますね。 昔のCOBOL言語なんかは「定義文」がとても長くて大変でしたけど、データの属性やデータの長さ 実ファイル
0
カバー画像

【GAS】フォルダ名とフォルダIDを2次元配列で取得する関数

今回はスプレッドシート上から動的にフォルダ情報を取得したい時に利用できる関数について記載します。なんで2次元配列にしてるかというと以下二つの理由があります。1)人間が把握するフォルダ名と、システムが把握するIDを取得する必要がある為。2)まとめたセル操作で便利な「setValues()」に引渡可能なデータが2次元配列限定の為。//=========================================//特定のフォルダ下のフォルダ情報を2次元配列で返す関数//==========================================function getFolderArray(folderId){  //定数宣言  const rootFolder = DriveApp.getFolderById(folderId);  const folders = rootFolder.getFolders();  const folderArray=[];  while(folders.hasNext()){    const folder = folders.next();    //2次元配列    folderArray.push([Folder.getName(),Folder.getId()]);  }  return folderArray;}上記ソースでフォルダ情報を2次元配列で取得できます。1列目がフォルダ名で、2列目にフォルダIDを取得しています。
0
カバー画像

【GAS】スプレッドシートの新規作成・改その4(おしまい)

■前回はこちら今回はスプレッドシートの新規作成処理の改良版最終回ということで、1~3までの処理の結合をしていきます。結合して関数化したソースは以下になります。function createSpreadsheet(spreadsheetName=``, folderID=``){  let flag = true;  let drive;  let files;  let newFileID = ``;  if(spreadsheetName!==``){    //ドライブデータの取得    if(folderID!==``){      drive = DriveApp.getFolderById(folderID);      files = drive.getFiles();    }else{      drive = DriveApp.getRootFolder();      files = drive.getFiles();    }    //重複チェック    while(files.hasNext()){      const file = files.next();      if(file.getMimeType() === MimeType.GOOGLE_SHEETS && _      file.getName() === spreadsheetName){        flag = false;        break;      }      //スプレッドシートデータの新規作成処理      newFileID = Spre
0
カバー画像

【GAS】スプレッドシートの新規作成・改その3

■前回はこちら今回はスプレッドシートの作成処理部分について記載していきます。基本の動作は以下のソースを利用します。//スプレッドシートデータの新規作成処理newFileID = SpreadsheetApp.create(spreadsheetName).getId();//指定フォルダへ移動するconst folder = DriveApp.getFolderById(folderID);DriveApp.getFileById(newFileID).moveTo(folder);ただ、この動作のままだとRootフォルダで作成した時にもmoveToを実行してしまうので、以下の様にちょっと修正します。if(flag===true){  //スプレッドシートデータの新規作成処理  newFileID = SpreadsheetApp.create(spreadsheetName).getId();  //フォルダが指定されていれば、指定フォルダへ移動する  if(folderID !== ``){    const folder = DriveApp.getFolderById(folderID);    DriveApp.getFileById(newFileID).moveTo(folder);  }}Rootフォルダ上に作成する時には変数「folderID」がブランクになるようにしているので、入力時だけmoveToが実行されるよう処理を分岐させています。これで一通りのソースの改造が終わりました!次回は一式まとめです。お楽しみに(*'ω'*)
0
カバー画像

【GAS】スプレッドシートの新規作成・改その2

■前回はこちら前回はファイルの作成位置がルートが指定フォルダかでの分岐をするようにしました(*'ω'*)今回は重複チェック処理について記載します。基本的な重複チェックはこちらの記事に記載した方法と一緒です。ちょっと違う点として、フォルダ作成の場合は名前のチェックだけでいいんですが、ファイルの場合はファイルタイプ(= MIME Type)を比較する必要があります。なので条件式としては以下の様な感じ。while(files.hasNext()){  const file = files.next();  if(file.getMimeType() === MimeType.GOOGLE_SHEETS _  && file.getName() === fileName){    flag = false;    break;  }}ポイントとなるのは、以下のコードです。file.getMimeType() === MimeType.GOOGLE_SHEETS「getMimeType()」が現在取得しているファイルのMIMETypeを取得します。パソコンのファイルでいうファイル拡張子みたいなものですね。比較定数値は以下の様にテキストコードで打つこともできますし。`application/vnd.google-apps.spreadsheet`今回の記事の様に以下の公式MIMEType定数を使う手もあります。「 developers.google.com/apps-script/reference/base/mime-type 」次回はファイルの作成処理部分について記述し
0
カバー画像

【GAS】スプレッドシートの新規作成・改その1

前回ブログだと重複対策が出来てなかったので、改修してみました。基本的にはフォルダの重複チェックと似たような処理を行うのですが、ルートフォルダ上(マイフォルダ)に作成したい場合と、指定のフォルダに保存したい場合で使うメソッドが異なるので、分岐させます。if(folderID !== ``){  drive = DriveApp.getFolderById(folderID);  files = drive.getFiles();}else{  drive = DriveApp.getRootFolder();  files = drive.getFiles();}指定のフォルダを取得したい場合は「getFolderById()」ルートフォルダを取得したい場合は「getRootFolder()」をそれぞれ使用します。 この時にブロック変数にしてしまうとifから出たら取得した変数の値が解放されてしまうので、上記のコード以前にletなりvarなりで変数宣言しておきましょう。続きはまた次回(*'ω'*)
0
カバー画像

GASでのフォルダ作成について

GASでフォルダを作成する場合、DriveAppを使い、以下の様に書きます。const drive = DriveApp.getFolderById(`フォルダID);drive.createFolder(`作成フォルダ名`);これで指定したフォルダID下に新しくフォルダを作成することができます。ただ、GoogleDriveの場合、IDでファイル管理している為、同一名称のフォルダが作れてしまう為、以下の様にフォルダ名の重複チェックを入れてあげるとより安定性があがります。const drive = DriveApp.getFolderById(folderId); const folders = drive.getFolders();let folder;let flag = true;while(folders.hasNext()){  if(folder.getName() === folderName){    flag = false;    break;  }}if(flag === true){  drive.createFolder(folderName);}もうひと手間加えてあげると、関数化できるので使いまわしがしやすくなります。
0
カバー画像

GASでスプレッドシートを指定のフォルダに新規作成する

お久しぶりのブログです。体調崩したり大き目案件頂いててんやわんやでした。さて、今回はGASを使ったスプレッドシートの新規作成について書いてみます。GASでスプレッドシートを単純に新規作成する場合、以下の様に記述します。SpreadsheetApp.create(`テストシート`);ただ、この方法だと、GoogleDriveのRootフォルダであるマイドライブ直下に作成されてしまいます。特定のフォルダにファイルを新規作成したい場合、createメソッドだけでは実現できないので、以下の様な手順を通ります。1)スプレッドシートを新規作成2)新規作成したシートのIDを取得3)フォルダの場所を取得 4)取得したシートIDを指定したフォルダへ移動するGASの場合、スプレッドシートの新規作成と、シートIDの取得は同時に行う必要があるので、以下の様に記述します。const bookId = SpreadsheetApp.create(`テストシート`).getId();次に個別に保存先のフォルダを取得しますconst dir = DriveApp.getFolderById(`フォルダID`);最後に移動処理を行います。DriveApp.getFileById(bookId).moveTo(dir);これをひとまとめにして記述すると次の様になりますconst bookId = SpreadsheetApp.create(`テストシート`).getId(); const dir = DriveApp.getFolderById(`フォルダID`);DriveApp.getFileById(boo
0
カバー画像

Google Apps Script の承認について

拡張機能付き Google スプレッドシートを使用する際に最初の1回だけ承認作業を行う必要があります。以下の手順に従って、承認をしてください。手順1.メニュー「拡張機能」から「承認(初回のみ)」をクリックしてください。手順2.「承認が必要」というポップアップが表示されます。「続行」をクリックしてください。手順3.「アカウントの選択」画面が表示されます。使用するアカウントを選択してください。手順4.(無料の Google アカウントのみ)「このアプリは Google で確認されていません」という画面が表示されます。⚠ マークが表示されているのでビックリするかもしれませんが、「Google が作った拡張機能ではないですよ」意味で表示されています。左下に小さく表示されている「詳細」をクリックしてください。詳細が表示されます。スクロールして一番下に表示されている「(安全ではないページ)に移動」をクリックしてください。「安全ではないページ」と書かれているのは、「Google 自身が作ったものではないので保証しませんよ」という意味です。手順5.「Google アカウントへのアクセスをリクエストしています」という画面が表示されます。一番下までスクロールして「許可」を押してください。以上で承認が完了となりました!
0
カバー画像

[Google Apps Script]GAS初回実行時の認証のやり方

Google Apps Script(GAS)で書いたコードを実行するためには、初回のみアカウントの認証が必要となります。この記事では認証に必要な手順を解説します。手順1:【権限を確認】初めてのGAS(function)を実行しようとすると認証が必要な場合、このアラートが表示されます。そこで、権限を確認をクリックして先に進んでください。手順2:【アカウントの選択】ご使用のアカウントを選択してください。選択したアカウントで権限を許可します。手順3:【詳細】詳細を選択すると左下に「[関数名](安全ではないページ)に移動」が表示されます。手順4:【安全ではないページに移動】安全なページに戻りたくなりますが、ここで戻ってしまうと認証は出来ません。安全ではないページに移動を選択してください。手順5:【許可】「[関数名]がGoogleアカウントへのアクセスをリクエストしています」と表示されるので内容を確認して、許可を選択すると認証は完了です。【備考】手順1〜4で認証は完了ですが、スプレッドシート、フォーム、カレンダー、Gmail 等GASを利用するサービスが追加された場合は、その都度認証が必要となりますので、同じ手順で認証を行ってください。面倒な手作業の自動化・効率化をご検討中の方は下記ココナラのリンクよりお気軽にお問い合わせください。手作業での記録、PDF化、メール送信等はGoogleの公式サービスを使用する事で簡単に自動化・効率化することが出来ます。
0
カバー画像

GASツール制作例:画像からOCR使ってスプレッドシートに入力

こんにちは、ペンスケです。今日ご紹介するGASプチは、GASで画像から文字を判別するOCR→文字変換スクリプトです。今回作ったツールは、名刺をOCRで文字化して1セルに名刺の文字データを押し込んでいくという代物です。GoogleドライブにはOCR(画像から文字を判別する機能)をするための機能がデフォルトでついています。画像からドキュメントファイルを生成することが自動でできるのですが、これがそれなりに精度が良い。なので、この画像認識の機能をGASから使いにいって、ファイルごとに整理できたら。なんかに使えるかもしれない。というふわっとした動機で作成しました。なんのこっちゃと思われる方もおられると思うので、わかりやすくします。つまり↓これを↓こう処理の元になった画像の画質が低すぎたため、文字化けしております。GASに詳しい方むけの説明。→Google Apps Scriptを使って一時ファイルを生成し、その中のテキストデータをセルに押し込んでいます。→GAS OCRで検索するとサンプルコードがたくさん落ちてます。参考サイトをご紹介しようと思ったのですが、ココナラの仕様で外部サイトの貼り付けができないので、ご自身で調べてみてください。結構わかりやすいコードが3~4個おちてます♡さて、このOCRのGASプチツール。出力結果の全体像はこちら。(印刷会社さんの名刺サンプル画像をテストデータとして利用したため、会社名などの情報は伏せさせていただいてます)文字の識別精度はまあまあ悪くないレベル。日本語が稀に文字化けしてしまいますが、アルファベットに至ってはほぼ問題なく識別ができています。手書き文
0
カバー画像

GASツール制作例紹介:請求書をPDF出力するスプレッドシート

こんにちは、ペンスケです。今日はGASとスプレッドシートを使って、請求書を指定したフォルダにPDF出力するツールです。必要な事項を入力して、ボタンをぽちっと押すだけでPDFを出力。指定のフォルダに自動保存されるので、請求書のデータ管理を簡易化できます。ファイルの保存先は……もちろんGoogleドライブです!クラウド上に自動保存するので、データの共有が簡単。そして、ファイルをなくすトラブルを防ぐことができます。活用例①請求書の作成を簡易化②自動処理と組み合わせて複数の請求書を作成ネットで検索すると、GASの開発者様がたくさんのコードを公開してくださっています。その中から自分がやりたいことを実現できるものを参照して、カスタマイズすることで、ちょっとした不便を解消することができます。もしいいなぁと思ったらぜひ、いいねを押してくださいね。もしこちらのツールのご要望がありましたらDMにてご相談ください。
0
カバー画像

Googleのサービスを活用してみませんか?

Googleって色々なサービスを出していますよね!その範囲はカレンダーやドライブだけではありません。既にご存じのかたはいらっしゃると思いますが、Googleにはスプレッドシートやドキュメント、スライドなどのアプリがあります。これで、表計算や文書作成、プレゼン資料などが作れちゃうんです。それが、Googleアカウントを登録するだけで使えるんです。だから、もうOfficeが要らなくなったんですよ!高いお金を掛ける必要がなくなったんですよ!そして、Googleドライブに保存すれば、どこからでもアクセスができるんです。家、会社、キャンプ場どこからでも操作できるんです。これって凄くないですか?場所に捕らわれず自由なところでプレゼン資料を作ったり、データ分析をしたり、ブレストしたり、どんどん良いアイデアが出てきそうですね。さぁあなたも楽しいGoogle生活を!ちなみに私はGoogleから一銭も貰っていません。ただ良いものを皆さんに紹介しただけです!
0
カバー画像

[GAS] オーナー権限移譲時のメール非通知設定について

本記事はQiitaで公開した記事の要約・補足版となります。 GASにて共有ファイルやフォルダのオーナー権限を移譲する際、メール非通知でのオーナー権限移譲はできません。Driveのクラスメソッドに setOwner() というものがありますが、メールの通知・非通知に関するオプション項目が存在しません。Driveの拡張サービス、Drive API 経由で非通知設定しても同様です。では、非通知にするにはどうすればよいのでしょうか。Drive APIの公式リファレンスには、以下のように明記されています。Whether to send notification emails when sharing to users or groups. This parameter is ignored and an email is sent if the role is owner.(「公式リファレンス」より)上記はAPI V2の記述ですが、「設定」はできても無視され、通知されるとあります。GASにおけるDriveの拡張サービスでは、執筆時現在 Drive API V2となりますが、V3ではさらに以下のような記述となっています。Whether to send a notification email when sharing to users or groups. This defaults to true for users and groups, and is not allowed for other requests. It must not be disabled for ownersh
0
カバー画像

スクリプト実行時の「承認」でびっくり!

確かに、わたしも、GASを初めたとき、びっくりしました。「なんじゃ、こりゃ?、こわー」みたいなよくよく考えると、わかるんですが、あまり見かけない忠告表示を、いきなり初っ端に浴びせかけられたら、誰でも驚きますよね!?Googleは、そのびっくりさせることも狙いらしいですよ。要は、本人が気づきもしないで、勝手に変なアプリケーションをインストールさせない為のものなんですよね。なかなか、強力な表現力だよなではでは、そのよくよくを考えてみるとですね・・・フリーソフト(個人で作ったカスタマイズプログラム)とかを、MacやWindows本体へダウンロードし、実行した際は、警告でるじゃないですか?「既知されていないプログラムであり、個人情報等だけでなく、本体PCに悪影響を及ぼす可能性がありますが、それでもインストールされますか?」的な内容あれと、文言は違えど、言いたい内容は、ほとんど一緒ですよね。ただ、あのGASの警告マーク、めっちゃ大きいから、余計恐怖あおりますよね。Dangerマーク!!!!!きちんと、デベロッパー(プログラム開発者)を知っていて、依頼作成したツールなら、安心して使ってもらいたいんですがね。お客様に納品し、後からこの「承認」について、大丈夫ですよって、説明しても、後付みたいになって信頼されないんじゃないかと思い、ここに事前に記載残しておこうと思います。 正直ワタシ的には、ローカルフォルダ(PC本体)に、わけのわからないカスタマイズプログラムをインストールする方が、怖いと思うんですよね。PC本体やられると、クラウドツールどころの騒ぎではなくなるんでね。 クラウドがセキュリティ
0
カバー画像

[GAS] Googleドキュメントで全消去の後appendParagraphしたら先頭に空行ができる

はじめに 久しぶりにGoogleドキュメントへGAS構築する機会がありましたので、小ネタ扱いの備忘録です。Googleドキュメント関連ではあまりピンポイントな情報にたどり着けないことが多いので、できる限り具体的な内容のタイトルにしてみました。 なお、本記事はQiitaで公開した記事の要約・補足版となります。 問題点ドキュメント上で全消去の後、appendParagraphにて段落データを順次追記するというスクリプトを実行したところ、先頭に空行ができてしまいました。これを削除したい、もしくは空行を出さずにスマートに先頭から追加できないか、についての検証です。 そもそもドキュメントの仕様上、初期状態では空段落が最初から存在している状態です。そこにappendParagraphしていくわけなので、当然の結果です。同様のことはinsertParagraphでも起きます。insertParagraphの場合は先頭行ではなく、末尾が空行になります。元々あった空行がinsertParagraphによって押し出されるような感じになるので、これも当然の結果です。解決策について 以下の2パターンについて検証してみました。 1-順次処理の後でBody.removeChildする 2-先頭(もしくは末尾)のみ元の空行と差し替える1-順次処理の後でBody.removeChildする Body直下の子要素を削除するremoveChildを使用します。引数にChildを取りますので、Body.getChild(インデックス値)でChildとして渡します。先頭段落を削除する場合、Body.removeCh
0
カバー画像

[GAS] Maps.ElevationSamplerで標高を調べる

以前にMaps関連のクラスを利用した小ネタを紹介しましたが、ElevationSamplerというクラスが残っていましたので、自他称日本一低い山の標高を調べてみました。本記事はQiitaにて公開した記事の要約版となります。概要1.日和山 宮城県仙台市(3m) 2.天保山 大阪府大阪市(4.5m)※二等三角点のある山としては日本一低い3.蘇鉄山 大阪府堺市(7m)※一等三角点のある山としては日本一低い 4.大潟富士 秋田県南秋田郡大潟村(0m)※周囲がマイナス標高 5.弁天山 徳島県徳島市(6.1m)※自然の山としては日本一低い ElevationSamplerを使って上記5山の標高を取得します。技術的な話標高を取得するためには、まず、地名や施設名から緯度と経度を取得する必要があります。ElevationSampler単体では直接標高を取得することができないため、一度Maps.Gecoderを経由して緯度経度リストを生成します。地名は特定できるもの前提のため、エラー処理及び複数候補がある場合の処理は実装していません。 なお、取得結果は日和山 3m→2.2m、天保山 4.5m→3.8m、蘇鉄山 7m→7m、大潟富士 0m→-4.2m、弁天山 6.1m→1.8mとなり、事前に調査した公開データと異なります。多少の誤差はあるとしても、この辺りは何を基準にした公開データ、計測データなのかよくわかりませんね。おそらく純粋な標高データと大潟富士のような比高ということでしょうかね。設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、
0
カバー画像

[GAS]Maps.StaticMapを使用しスプレッドシートにMap画像を挿入する

スプレッドシートから施設名を取得し、周辺地図を画像として挿入する小ネタです。本記事はQiitaにて公開した記事の要約版となります。Google Apps Script(以降、GAS)のMaps.StaticMapを利用し、PING画像として取得します。以前に紹介したMaps.DirectionFinderを利用し、2地点間のルートも描画します。01:東京駅からスカイツリーまでのルートPING画像として挿入サンプルでは出発地に東京駅、目的地にスカイツリーを指定。ルート設定以外はデフォルトの状態で描画しています。利用場面PDFやドキュメントへの埋め込み画像としてなお、Map画像のリンクURLの取得が必要な場合は、Maps Static APIを利用するためのAPIキーが必要になります。設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。 本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。
0
カバー画像

[GAS]Googleドライブの特定フォルダに含まれるフォルダの情報を取得する

ツールの概要Google Apps Script(以降GAS)にてGoogleドライブの特定フォルダに含まれるフォルダの情報を取得し、スプレッドシートへリストアップするという内容です。再帰処理によって、フォルダ内のフォルダ、いわゆる子フォルダ孫フォルダ(以降も含む)を走査します。階層が深ければ処理が遅くなってしまいますが、3階層までなら2000件程度を実行制限時間(5分)以内で取得できます。実運用なら数百件程度が目処かと思います。カスタマイズ案 ・定時に自動実行する・ファイルも含めたリストにする・取得する項目を変更する(現状はフォルダ名とURL)設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。
0
カバー画像

[GAS]Maps.DirectionFinderを使用し2点間の距離を一括取得する

ツールの概要 以前に紹介したGoogleスプレッドシートの施設リストから、緯度、経度、住所を取得するツールの派生版です。今回はGoogle Apps Script(以降、GAS)のMaps.DirectionFinderを利用します。01:山手線の各駅の住所リスト02:実行結果(処理時間約20秒)サンプルでは事前に取得してあった住所を元に、その住所を逆順に並べた2駅間の距離を取得しています。(例:東京駅、有楽町駅→約0.293km)なお、距離計測モードは車基準ですが、その他Googleマップで利用できるルート検索時のモード設定(徒歩や自転車など)への変更も可能です。また、一括取得に関しては、実行時間制限を考慮し、1回あたり300件程度までの取得にとどめておいたほうが良いでしょう。カスタマイズ案 ・目的地までの予想時間取得・各店舗ごとの商圏分析の基礎データ取得設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。 本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。[追記 2022.10.11]当ブログ記事から何件かお問い合わせいただいていたこともあり、Maps.DirectionFinder連携に特化したサービスを新たに追加しました。標準
0
カバー画像

[GAS]Maps.Geocoderを使用し施設名リストから緯度経度他情報を一括取得する

ツールの概要 Googleスプレッドシートの施設リストから、緯度、経度、住所を取得するツールです。 Google Apps Script(以降、GAS)のMaps.Geocoderを利用します。01:山手線の駅名リスト02:実行結果(処理時間約20秒)サンプルでは山手線の駅名リストからその住所と緯度経度情報を取得しています。※その他、施設の「種類(type)」も取得できますが、英語表記鶯谷駅、原宿駅、浜松町駅のように同じ施設名で複数の候補がある場合、一番最初の候補を取得し、他候補は切り捨てています。その際、備考欄に「他に候補あり」と補記するようにしています。このあたりはカスタマイズする際の余地として残しています。カスタマイズ案 ・不動産物件の位置情報をリスト化・KMLデータとして出力設置サポート及びカスタマイズ相談 かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。 ※2021.02.14 GIFアニメが動作しないようでしたので修正しました。※2021.03.19 タイトル及び本文中、Geocoderに訂正しました。
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法⑤

前回の記事では、日付の記載がある行だけを絞り込むことができました。シートの先頭の空行や見出しを飛ばしてデータを取得するほか、行の途中で空行などがあった場合にも、日付のデータだけを取得することに成功しましたね(´∀`*)今回でこの連載も終了となります。前回は.filter()メソッドを使って、A列に日付のデータがある行だけを抽出しました。さてこの連載の最終目的に立ち返ってみましょう。このような↓データの中から、一致する日付の行だけを抽出する、もしくは〇日~〇日まで、といったようなある期間に該当する行を抽出するというのが目的でした。実は、これも.filter()メソッドと、これまでに学んできたことを応用すればとても簡単に実現することができます。日付の比較をするには、.getTime()メソッドを使うのでしたね。それを、前回作成したコードに応用してみましょう。↓前回のコードconst filtered = whole_sheet.filter(function (element) {    return typeof element[0] == 'object';});上記のコードでは、2行目の typeof element[0] == 'object' がTrueとなるとき、つまり「A列の値がオブジェクト型である」という条件に一致するものだけを抽出し、filteredという新しい配列を作成したのでした。では typeof element[0] == 'object' という条件に、さらにもう一つの条件を追加したらどうでしょうか?そうなんです! それができちゃうんです(∩´∀`)∩B
0
カバー画像

[GAS]Google翻訳を利用した多言語一括翻訳ツール(主に単語ベース)

ツールの概要Googleスプレッドシート上で動作する多言語一括翻訳ツールです。指定した日本語(主に単語)をデフォルトで任意に選択した5つの言語へ翻訳します。約100種類の言語に対応しています。01:言語選択02:翻訳結果現状は日本語からの一方通行翻訳となりますが、カスタマイズすれば双方向翻訳ツールになります。カスタマイズ案・メニュー項目からの実行→ボタンクリックで実行・UIをGAS(Google Apps Script)のHTML ServiceもしくはGoogleサイトに変更し、フォーム形式のSPA(Single Page Application)にする・音声読み上げライブラリによる翻訳結果の読み上げ(言語が対応していることが前提)設置サポート及びカスタマイズ相談かなりニッチなツールが多いと思いますが、案件応募用にテスト開発したツール類など、カスタマイズ前提で開発受付いたします。 もちろん、そのまま利用するのも良いですし、プロジェクト内の部品として組み込んだり、本ツールに機能追加するなど、ご要望に応じてカスタマイズいたします。 当方にて出品中のサービスを介してのみ受付致しますので、お気軽にお問い合わせください。本ツール以外のGAS開発に関するご依頼やご相談も歓迎いたします。※2021.02.14 GIFアニメが動作しないようでしたので修正しました。
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法④

さて、前回は取得したシートのデータを、forEachでループさせてログに表示させましたね。 そしてA列にある日付の表示を、getTime()メソッドでシリアル値として確認しようとしたところ、エラーが出たのでした。 前回の記事をお読みになりたい場合はこちら↓をご覧くださいね。エラーログを確認してみましょう。 ループが一度もされずにエラーが出ていますね。つまりシートの一行目でエラーになっているということです。なぜelement[0].getTime()でエラーが出るかを知るかには、element[0]になにが格納されているかを見てみなければなりませんね。 function testDateFunction() {  const ss = SpreadsheetApp.getActiveSheet();  const whole_sheet = ss.getDataRange().getValues();  whole_sheet.forEach(function (element,index) {    console.log((index+1)+"行目は「"+element[0]+"」だよ");  });1行目や2行目のデータはそれぞれ「サンプルシート」「日付」だと分かりました。String型ですね!これじゃ.getTime()メソッドが使えるわけないですね(;゚Д゚) 初めにシートのデータを取得した際、.getDataRange()でシートのすべてのデータを配列に格納しました。ですのでA列が日付で始まる行以外の、1行目や2行目などの「サンプルシート」や「日付」などの文字列が取得
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法③

さて、今回の記事からはいよいよ日付をまとめて処理していきたいと思います。 前回の記事をお読みになりたい場合は、こちらをご覧くださいね↓このようなシートを用意しました。 なんのシートなんでしょうか。適当に用意しただけなので私にもわかりません(笑)まずはこのシートを、まとめて配列に格納してしまいましょう。 function testDateFunction() {  const ss = SpreadsheetApp.getActiveSheet();  const whole_sheet = ss.getDataRange().getValues();}これで、現在開いているシートが丸ごと取得できました。 変数whole_sheetの中身は、以下のような二次元配列になっています。 ちょっと見づらいですね……💦スプレッドシートやエクセルでは、シートは二次元配列で表示されます。 二次元配列とは、配列の中にさらに配列が入っているものです。ひとつのセルがひとつの要素となり、その集まりが「行」として一次元配列に、またそのひとつの行がひとつの要素として配列にまとめられ、二次元配列になるという感じです。 [セル、セル、セル] ← 一次元配列 [[セル、セル、セル], [セル、セル、セル], [セル、セル、セル]] ↑二次元配列 という感じです。 ちなみに、一行分のデータを取得した際には一次元配列になる、なんてことはないですよ。 一行分なら、[[セル、セル、セル]] ←こういう二次元配列になりますね(´∀`*) では、取得したデータをforEachで表示させてみましょう。 whole_sheet
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法②

今回はDateオブジェクトのgetTime()メソッドについて解説していきます。 前回の記事で、getTime()メソッドは「とある起点からの経過ミリ秒を取得するメソッド」だと書きました。 もし前回の記事をご覧になりたければ、こちらをクリックしてくださいね。そこのところを詳しく見ていきましょう! まず前回同様に、変数todayに今日の日時を格納してみましょう。ちなみにこの記事を書いている現在、日にちは2月2日です。 const today = new Date(); 現在日時の取得はこれでできるんでしたね。ログを見てみましょう。console.log(today); 無事、現在時刻が格納できていますね。では console.log(today.getTime()); としてみるとログにはなにが表示されるでしょうか??function testDateFunction(){  const today = new Date();  console.log(today);  console.log(today.getTime());}なんだか謎の数字「1612194136072」が表示されましたね(;'∀') 実はこれが、「とある起点からの経過ミリ秒」の数字です。とんでもなく大きな数字のように思えますが、ミリ秒であらわされた数字なんですね~。 ではここで気になるのが、「とある起点」っていうのはいつのことよ?? ということだと思います。 ズバリ答えを言うと、それは1970年1月1日午前0時0分0秒(UTC)のことです! これはUNIX時間といって、コンピューターで時刻を表現する際の、基
0
カバー画像

【Google Apps Script】シートから一致する日付をしぼり込む方法①

スプレッドシートを扱っていると、高い頻度で日付を扱う場面がありますよね(´∀`*) ですが、日付の操作って正直、かなりややこしくないですか……? そもそもJavaScriptって、もともと日付の操作をするのがとてもややこしいんです。そこでよく使われるのが、ライブラリの「Moment.js」……なのですが、GASでは使えないんですね(ほんとはあるけど随分前に更新が止まっているので使わないほうがよい)。今回は、シートの中から特定の日付だけを絞り込むという、単純だけれど奥が深い方法を連載で紹介していきます♪ 例えば、以下のようなシートがあったとします。 なにやら勤怠管理のシートのようですね。余談ですが簡単に勤怠管理ができるスプレッドシートなどを出品しておりますのでご興味があればご覧ください(笑) ではこのシートから、1月3日~15日までの日付を絞り込むにはどのようにしたらいいでしょうか? さて、まずは最も基本的な部分ですが、JavaScriptで日付を扱うにはDateオブジェクトを使います。 使い方は new Date() です。 const today = new Date(); とすれば、変数todayには今日の日付が入ることになります。 (実はその表現は誤りで、現在の日時が入っていると言わなければなりません。後述します) さて、この記事を書いている現在は1月31日です。だとすれば、画像の26行目の日付と同じですね! ==で結ぶことができるのではないでしょうか?やってみましょう! function testDateFunction(){   const ss = Spreadsh
0
カバー画像

【GoogleAppsScript(GAS)】Gmail(Gメール)のメール本文から特定の文字を抽出して一部のみを抜き出してスプレッドシートに書き込む方法

Gmailの本文から特定の文字を抽出して一部のみを抜き出す例えば、「Gmailの本文から特定の文字を抽出して一部のみを抜き出す」といったことがしたい、というというこもあるかと思います。 function searchContactMail() {   const search_text = '"銀河鉄道の夜"';   const threads = GmailApp.search(search_text, 0, 1);   const messagesThreads = GmailApp.getMessagesForThreads(threads);   var messe_body = messagesThreads[0][0].getPlainBody();   SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue(messe_body); } こちらを実行すると、セル「A1」に検索の件名を含んだメールの本文が抽出されて、書き出されます。 ※実行時に警告やら何やらが色々と出るかと思いますが、そのあたりは過去の記事をご参考頂ければと思います。
0 500円
75 件中 1 - 60
有料ブログの投稿方法はこちら