アセスメントシートとは. GAS(GoogleAppsScript)でセルの値を変更する方法を紹介します。「setRange()」はスプレッドシートでセルに入力されている値を変更する方法です。「setValue()」と「setValues()」を使ってどのように値を変更するか。setするセル番号を取得する方法なども挙動を見ながら紹介してます。 GAS(Google Apps Script)を使ってスプレッドシートからメールを送信する方法をメモしています。紹介しているのはメールを送る最小限のスクリプトですが、トリガーと組み合わせて応用すると様々な業務効率化ツールになります。 www.yukibnb.com, 今回は前回記述したGASの解説を行います。カスタマイズしてオリジナルのLINE BOTを作成したい方の参考になればうれしいです。, 応用編ではテキスト・スタンプ・画像・動画・Flex Messageと5つの異なる種類のメッセージを送信できるようになりました。, LINE Messaging APIではこれらのように異なる種類のメッセージを「メッセージタイプ」と呼んで分類しています。, 今回実装したテキスト・スタンプ・画像・動画・Flex Messageだけでなく、以下のようなメッセージタイプがLINE Messaging APIでは用意されています。, 一見するとすごく複雑になったように感じますが、基本編で覚えたテキストの返信方法をしっかり理解できていれば、他のメッセージタイプの送信方法もスムーズに理解ができます。, 次に返信語句をお好きなテキストに置き換えると完成です。「こんにちは」と返信したい場合、以下のように記述します。, 応用編第1話で作成したスプレッドシートのB列がメッセージタイプ、C列が返信語句にあたります。, 次に送信したいスタンプのPackage ID (packageID) とSticker ID (stickerId) を記述します。, スプレッドシートのB列がメッセージタイプ、D列がPackage ID、E列がSticker IDにあたります。, 次に送信したい画像のURL (originalContentUrl)、プレビュー画像のURL (previewImageUrl) を記述します。, スプレッドシートのB列がメッセージタイプ、F列が画像のURL、G列がプレビュー画像のURLにあたります。, 次に送信したい動画のURL (originalContentUrl)、プレビュー画像のURL (previewImageUrl)を記述します。, スプレッドシートのB列がメッセージタイプ、F列が動画のURL、G列がプレビュー画像のURLにあたります。, 次に代替テキスト (altText) を記述します。代替テキストとは何らかのエラーが発生した際にFlex Messageの代わりとなるテキストのことです。, 本来であれば個々のFlex Messageの内容に応じた代替テキストを記述するのですが、今回紹介したGASでは手順をシンプルにするため"this is a flex message"という代替テキストに固定しています。, そして最後にFlex Messageのコンテナ (contents) を記述します。このコンテナはFlex Message Simulatorで作成・エクスポートしたJSONのことです。, Flex Message Simulatorの使い方やJSONのエクスポート方法については以下の記事で詳しく解説していますのでご覧ください。【初心者向け!LINE Bot】Flex Message Simulatorの使い方, では応用編第2話で記述したGASのどの部分に当てはまるかというと、以下のmessageArrayがそれに当たります。, 送信したいメッセージタイプに応じてmessageArrayの中身を調整してあげるだけでOKです。, ちなみにmessageArrayはテキストのみ送信するLINE BOTのGASを紹介した基本編第4話でも使用しています。, つまり基本編(テキストのみ返信するLINE BOT)と応用編(異なるメッセージタイプを送信するLINE BOT)は実は大きな違いはなく、messageArrayの中身をスプレッドシートとGASで調整しているだけです。, まずはじめにスプレッドシートのA~G列の最終行までのすべてのデータを配列wordListに格納します。, getValuesメソッドを使用したため、配列wordListは二次元配列になっています。, ※二次元配列があまりよくわからない方は以下記事をご参照ください。 gas開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知るのには効果的な一 gasでは「スプレッドシート」を操作することが多く、 「スプレッドシート」のデータを「配列」で扱えるかどうかが"カギ" となります。 次のようにスプレッドシートの各 「行」 のデータは、右側に記載の通り「(一次元)配列」で扱うことになります。 GASの配列 の扱い方に ... スプレッドシートとGoogleAppsScriptが便利過ぎてテンション上がった件 . Google Apps Scriptは実行時間には大変シビアです。 なんせ 1. シートのデータをgetValuesを使って配列に格納する 2. 私のやり方ですがこういう感じです。これが一番簡単なのでは??と思いますが、どうでしょうか。 GoogleAppsScript(GAS)使ったことが無く、初めて使う方を対象に、出来るだけ平易な解説をしていきます、また、文法的な話は極力少なめにして、実際に使えるようになることを目指します。本シリーズでは、Googleスプレッドシートで、GoogleAppsScript(GAS)を使いながら、このスクリプト言語 … これまで例として使用してきたスプレッドシートはコチラです。 それで、Gmailからメッセージを取得してきたときに、それに含まれる名前、年齢とそのメッセージIDを記録するのですが、同じメッセージを重複してデータ追加しないようにしたいのです。 そのために、既に現在対象としているメッセージIDが、既にスプレッドシートに記載されているかどうかを判定する必要があります。 そしてその判定処理をするために、メッ … Google Apps Script(以下GAS)上で配列、連想配列を扱う際の記述方法について纏めてみます。・・・と言ってもGAS自体がJavaScriptベースなので、「JavaScriptにおける書き方」でも意味は同じだと思い … www.yukibnb.com, そして同じループ内で、該当する行wordList[i]を空配列replyListにまるごと格納しました。(空配列replyListに一次元配列wordList[i]を格納しました。), 空配列の中に一次元配列を格納するため、配列replyListは二次元配列となります。, 現在一次元配列replyTypeにはメッセージタイプが、二次元配列replyListには該当する行がまるごと格納されています。, 例えばユーザーがLINE BOTに「チェックアウト」と送信した場合、一次元配列replyTypeと二次元配列replyListの中身は以下のようになっています。, 一次元配列replyTypeの一つ目の要素はtext、そして二つ目の要素はstickerです。, 一次元配列replyTypeと二次元配列replyListの中から、必要な情報をpushメソッドを使って空配列messageArrayに追加し、messegeArrayを以下のようにします。, 実際にどのように空配列messageArrayに情報を追加しているかというと、以下箇所で行っています。, SWITCH文を使って、メッセージタイプに応じてmessageArrayにpushする情報を調整しています。, たとえばメッセージタイプ《replyType[j]》がtextの場合、スプレッドシートのC列の情報《replyList[j][2]》をmessageArrayに追加する必要があります。, またメッセージタイプ《replyType[j]》がstickerの場合、スプレッドシートのD列の情報《replyList[j][3]》とE列の情報《replyList[j][4]》をmessageArrayに追加する必要があります。, これでテキスト・スタンプ・画像・動画と異なるメッセージタイプのメッセージをLINE BOTに送信させることができるようになりました。, 今回は応用編第2話で紹介したGoogle Apps Script (GAS) の解説を行いました。, 繰り返しになりますが、基本編(テキストのみ返信するLINE BOT)と応用編(異なるメッセージタイプを送信するLINE BOT)は実は大きな違いはなく、messageArrayの中身をスプレッドシートとGASで調整しているだけです。, messageArrayに関すること以外は基本編のGASと変わりはないため、もしちょっとわかりにくいなという場合、基本編の第5話・第6話の解説をお読み頂くとより理解が深まると思います!, 本解説を通じて皆さんご自身でLINE BOTをカスタマイズし、より便利に活用頂けるとうれしいです。, 応用編は今回の第3話で一旦終了となりますが、今後は単発でLINE BOTのおすすめカスタマイズなどを紹介できればと思っています。, 当ブログでは民泊運営や様々な業務を自動化・効率化するための情報を紹介しています。Twitterで最新記事や人気記事をお知らせしていますので、是非フォローお願いします!, 海外製SaaSの日本事業をしています。縁あって全く異なる民泊業界にも2016年から関わっています。民泊業務や各種業務を自動化・効率化するためのブログを執筆しています。お気軽にコメント・お問い合わせください :), 業務効率化とおもてなし力アップを同時にするために、外国から来るお客様向けに各種家電用の英語シールを作りました。↓↓↓, 民泊向けのオリジナル地図(アクセスマップ)作成のご依頼はこちらからお願いします。↓↓↓, 海外製SaaSの日本事業をしています。縁あって全く異なる民泊業界にも2016年から関わっています。民泊業務や各種業務を自動化・効率化するためのブログを執筆しています。, こんにちは! Yuki (@yukibnb) です。今回はGoogle Apps Script…, こんにちは! Yuki (@yukibnb) です。今回はLINE Messaging API…, 2020-12-10 memo2020/12/10に記事全体を修正しました。主な修正…, こんにちは! Yuki (@yukibnb) です。LINE Messaging APIとGoog…, //replyList[j][2]はJSON.parseを使ってパースする必要がある, 【応用編第3話】コピペでOK!スプレッドシートを使ってLINE BOTに画像やFlex Messageを返信させる方法 (解説編: GAS), 【シリーズ第1話】LINE Messaging APIのプロバイダーとチャネルを作成する方法, 【シリーズ第2話】LINE Messaging APIのチャネルアクセストークンを発行しよう, 【シリーズ第4話】コピペでOK!スプレッドシートの語句を返信するLINE BOTをGASで作成する方法(実践編), 【シリーズ第5話】スプレッドシートの語句を返信するLINE BOTをGASで作成する方法(解説編: 全体像), 【シリーズ第6話】スプレッドシートの語句を返信するLINE BOTをGASで作成する方法(解説編: GAS), 【初心者向け!LINE Bot】Flex Message Simulatorの使い方, 【応用編第1話】スプレッドシートを使ってLINE BOTに画像やFlex Messageを返信させる方法 (シート準備編), 【応用編第2話】コピペでOK!スプレッドシートを使ってLINE BOTに画像やFlex Messageを返信させる方法 (実践編), 【応用編第1話】スプレッドシートを使ってLINE BOTに画像やFlex Messageを返信させる…, 【シリーズ第5話】スプレッドシートの語句を返信するLINE BOTをGASで作成する方法(解説編: …, 【コピペでOK!】GASでGoogleフォーム回答者にお礼メールを自動送信する方法, 【コピペでOK!】GASでGoogleフォーム回答者のメールアドレスを取得する方法, 【Beds24のAPI連携シリーズ】チェックアウト&イン一覧を毎朝自動LINE通知するGAS. 実行時間が6分を超えるとエラーで停止 となりますからね。 例えば、以下の記事では、たった50行のデータでも組み方によっては42秒もかかるということをお伝えしています。 てことは、単純計算でも430行を超えたあたりから6分の壁の危険ゾーンに到達してしまいます。 上記記事では、そのための対策として 1. 配列や行列という言葉を聞くだけで、理系脳が燻られますね!笑. Google Apps Scriptで二次元配列の行と列を入れ替える方法とその革命的な効果. セルの範囲を配列で取得するスプレッドシートでセル範囲を操作するとき、配列で取得してメモリ上で処理をするとスプレッドシートへのアクセス回数を減らすことができ、プログラムの実行時間を短くすることが出来ます。更には配列で処理することにより、複雑な 今回の記事では、文字列や配列の検索時に使うindexOfについて、使い方から、事例を踏まえながら解説していきます。GASのindexOfメソッドとはindexOf関数とは文字列や配列において、検索したい要素が配列内の先頭から何番目にあるかを LINE Messaging APIとGoogle Apps Script (GAS) を使い、スプレッドシートに記載されたテキスト・スタンプ・画像・動画・Flex Messageを返信するLINE BOTを作成する方法の紹介記事第3話です。, 前回の第2話でGASを記述し、LINE BOTが完成しました。 Google Apps Scriptでスプレッドシートを操作する時に基本となるセルの取得と書き換えについて説明します。 【Google Apps Script入門】 第1回 Google Apps S… APIを使うととっても遅くなる 2. GASはスプレッドシートだけでなく、GmailやSlackと合わせて使うことも可能な優れものです。 [document][GAS]業務マニュアルとアセスメントシートを作ろう-その1-, [document][GAS]業務マニュアルとアセスメントシートを作ろう-その2-, [document][GAS]業務マニュアルとアセスメントシートを作ろう-その4-, [document][GAS]業務マニュアルとアセスメントシートを作ろう-その1-. www.yukibnb.com, ユーザー (人間) がLINE BOTに対して「チェックアウト」と送信すると、GASはスプレッドシートのA列の語句が「チェックアウト」と一致するかA列を一行一行確認します。, そしてA列の語句が「チェックアウト」と一致した場合、その行のB列、つまりメッセージタイプwordList[i][1]を空配列replyTypeにpushメソッドを使って格納します。, この時GASはスプレッドシートそのものではなく、予め取得しておいた配列wordList内をループして確認します。その方がGASを高速に処理できるからです。, ※pushメソッドについてよくわからない方は以下をご参照ください。 現在、以下のようなLINEのテキストデータをスプレッドシートにそれぞれ項目を取り出して転記するプログラムが作りたいのですが、どのようなコードを組めばよいのか分かりません。 取り出したい項目は日付、時間、Bの返信の""で囲まれたテキスト内のさらに「」の中のテキストです。 不規則 今回はGoogle Apps Script (GAS)を使ってGoogleスプレッドシートとSlackを連携させて、提出期限のリマインドを自動化して担当者の負担を減らす方法をご紹介します。 二次元配列 Googleスプレッドシートの操作を中心にGAS(GoogleAppsScript)の基本コードを紹介しています。 初心者の方が順番に読んでくだけでGASの基礎コードが理解出来るよう続きを読む 配列のデータをsetValuesを使ってシートに … 読了の目安時間: 約2分50秒 最近、Google app script(GAS)を使って、スプレッドシートのあるシートに記載されたデータ(情報)を配列取得して、それを他のシートにfor文で書き出すというマクロの作成を … 社内のノンプログラマにGASを教えて、みんなでラクしようぜ!という活動をしています。 業務の中で圧倒的に利用頻度が高いのが「スプレッドシート」。 スプレッドシートのデータを扱うときに こんな感じで、「シートの中身を全部取ってきて、あとは二次元配列 dataで扱う」ことをします。 ノンプログラマにプログラミングを教えるにあたって「ループ」「配列(しかも二次元)」というのはなかなかに難しい内容です。 今回はスプレッドシートを扱う上での二次元配列について、どう教えたらいいか、を書 … そもそもなぜ重くなるかというと、APIを呼び出す回数がひとつ大きな問題となります。 スプレッドシートにおいて呼び出されるAPIとはSpreadsheetAppの、 getActiveSpreadsheet getSheetByName getLastRow getRange getValue setValue など、非常によく使われるものが並びます。 スプレッドシート上で大量のデータを処理しようとすると、これらのスクリプトが何度も何度も使用されるため、処理がどんどん重くなっていきます。 そこで、大量のデータをスプレッドシート上で処理するのではなく … 配列とは、値を含む行と列からなるテーブルのことです。セルの値を特定の順序でグループ化する場合は、スプレッドシートで配列を使用します。 関数の中には配列を返すものがあります。 どうも。つじけ(tsujikenzo)です。このシリーズでは「業務マニュアルとアセスメントシートを(同時に)作ろう」についてお送りしています。全7回の予定で、今日は第4回目です。, 前回は「マニュアルの見出しスタイルを抽出しよう」ということでDocument APIのParagraphクラスを操作して、[TITLE]や[HEADING2]などの[見出しスタイル]を取得できました。, 今回は、ドキュメントからスプレッドシートを新規作成したいと思います。前半は「ドキュメントから2次元配列用の配列を作成」し、後半では「スプレッドシートを新規作成」します。, 今回の目的は、マニュアルの作業を1つずつ評価する(アセスメントを取る)為のスプレッドシートを作成することです。, 作業をリスト化して、「担当」「業務アプリ」「自動化できそうか」などの評価を社内で行う為のシートです。, マニュアル(ドキュメント)から自動で引っ張ってくるデータはA列の[Style]、C列の[Heading]のみです。[B列]のNoは自動で生成します。, 【注意事項】ドキュメントからのインポートは一方通行で、常に新規のスプレッドシートが作成されますので、必要に応じてコピペなどを行ってください。, 前回は、スタンドアロンスクリプトに下記のコードを書きました。(変数[title]を復活させていますのでご注意ください), タイトルは既に変数[title]に格納できていますので、変数[array]を定義する時に、スプレッドシートの1行目の[見出し行]と[タイトル]を格納してしまいます。, A列の[Style]の配列を作成します。前回の記事では、見出しを取得する時は「NORMAL以外」という条件判定で良かったですが、スタイルは[HEADING2][HEADING3][HEADING4]をそれぞれ判別しなければなりません。, なので、for (const parag of paragraphs){の後に続く処理をSwitch文に書き換えます。, 変数[paragraphs]の各要素は.getText()メソッドで中身のテキスト(= Heading)を取得することができます。, なので、先ほどのSwitch文の中で[Heading]も一緒に格納してしまいましょう。, スタイルと見出しの間には空文字’’を挿入して、[Style, No, Heading]の配列と一致させています。, これまでに作成したコードをパーツ化(関数を作成する、とも言います。)します。関数を作成したら必ずドキュメンテーションコメントを付ける習慣を付けましょう。, SpreadsheetAppクラスの.creat(name)メソッドはファイル名に(name)を付けてマイドライブ直下にスプレッドシートを作成します。また、作成したスプレッドシートオブジェクトを戻り値とします。, 引数(name)には先ほど取得した変数[title]をそのまま使えますね。関数を新しく作成します。, また、作成した「スプレッドシートオブジェクト」と「スプレッドシートID」は後で使いますので、変数[ss]と変数[SSID]に格納しておきます。, 先ほどパーツ化した関数documentConverter()と今作成した関数createSS()を呼び出す為の関数createAssessmentSheet()を作成します。, createAssessmentSheet()を実行すると、マイドライブにスプレッドシートが新規作成されます。ドキュメントから取得した[タイトル]がファイル名になっていますね。, さて、前半は「ドキュメントから2次元配列用の配列を作成」し、後半では「スプレッドシートを新規作成」しました。スプレッドシートのファイル名はドキュメントから自動で取得したものでしたね。ワクワクです。, 札幌在住。貿易商社を営みながらノンプロ研で学習に取り組んでいます。GAS、Python、VBAなど。, [document][GAS]業務マニュアルとアセスメントシートを作ろう-その3-. この時GASはスプレッドシートそのものではなく、予め取得しておいた配列wordList内をループして確認します。 その方がGASを高速に処理できるからです。 gasでスプレッドシートを操作する上で二次元配列を理解することはとても重要です。 二次元配列以前にそもそも配列って何?という方もいらっしゃると思います。配列や二次元配列については別記事で詳しく解説しますのでお楽しみに! 【2019/8/30追記】 読了の目安時間: 約2分8秒 Google app script(GAS)の配列の基本的な使い方を備忘録的にまとめます。 GAS 配列の基本知識 宣言 GASで配列を宣言する時は、下記の二通り。 【1】 var arr_ […] Google Apps Scriptでログ出力する2つの方法(Logger.logとconsole.log)の使い方やログの確認方法、開発目的に応じた使い分けを紹介します。 どうも。つじけ(tsujikenzo)です。このシリーズでは「業務マニュアルとアセスメントシートを(同時に)作ろう」についてお送りしています。全7回の予定で、今日は第3回目です。前回のおさらいさて、前回は「マニュアルの作成の仕方」を... Class SpreadsheetApp  |  Apps Script  |  Google Developers. 今回の記事では、GASを使ってスプレッドシートにデータを書きこむやり方について解説します。GASでスプレッドシートのセルに書きこむ基本構文 GASでスプレッドシートに出力するにはsetValue関数を使用します。まずはコードを先に見てみまし GoogleAppsScriptで、スプレッドシートを並べ替えます、書き方のバリエーションがいろいろありますが、並べ替えキー列、昇順・降順、これらをどのように指定するかだけの違いになります。書き方のバリエーションごとに順に見ていきましょう。 Copyright © 2020 KenzoTsuji All Rights Reserved. Google Apps Script(GAS)は、Googleが提供しているプログラミング言語です。自分は主にGoogleスプレッドシートを操作する為に使いますが、GmailやGoogleカレンダー、Googleフォームな … この中の、 [[a1, b1, c1], [a2, b2, c2], [a3, b3, c3], [a4, b4, c4], [a5, b5, c5]] が二次元配列の状態になっています。 スプレッドシートに記載されているデータと、上記の二次元配列のデータを見比べると、二次元配列のイメージがなんとなくついてくるようにも思われます。 この記事では、Google Apps Script(GAS)について、特徴やできること、使い方、活用事例などを、初心者にもわかりやすく解説しています。GASは、Googleのサービスを使い、無料で業務を効率化する手段として注目されています。この記事を読み、GAS入門しましょう。 今回は、ドキュメントからスプレッドシートを新規作成したいと思います。前半は「ドキュメントから2次元配列用の配列を作成」し、後半では「スプレッドシートを新規作成」します。. スプレッドシートで配列や行列について書かれている記事がなかったので、まとめました。 今回は、スプレッドシートで配列や行列を作成する方法を紹介します。 【gas】シートのデータベースから1列抽出 スプレッドシート.