(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。Scriptでフォーム送信メールからデータを取得してスプレッドシートにまとめるツールを作成しています。Scriptでフォーム送信メールからデータを取得してスプレッドシートに蓄積していくツールを作っています。今回は、GmailメッセージのメッセージIDを取得する方法です。tonari-it.com2017.11.15Gmailから取得したメッセージIDをスプレッドシートに書き出す処理を使いました。メッセージIDを取得したかというと、スクリプトを複数回実行したときに、同じメッセージから重複してデータを取得しないように...という目的がありました。「同じメッセージIDが存在しなければ、そのメッセージのデータを書き出す」という分岐処理が必要になってきます。その前準備として、メッセージIDが格納されている列データを配列として取得します。スクリプトを高速にするために配列として取得した上で、上記分岐判定をしていくためです。Scriptでスプレッドシートの列データを配列として取得する方法についてお伝えします。今回のお題:スプレッドシートのメッセージIDの列データを配列で取得するこれまで例として使用してきたスプレッドシートはコチラです。それで、Gmailからメッセージを取得してきたときに、それに含まれる名前、年齢とそのメッセージIDを記録するのですが、同じメッセージを重複してデータ追加しないようにしたいのです。そのために、既に現在対象としているメッセージIDが、既にスプレッドシートに記載されているかどうかを判定する必要があります。その判定処理をするために、メッセージIDのデータをいったん配列として取り込む、というのが今回のお題です。列データを配列として取得するスプレッドシートで検索対象となるのは、C列ですから、C列の見出しを除くデータを配列として取り込みましょう。GASにとって、実行時間は死活問題。スプレッドシートのままよりも、配列に取り込んだほうが処理が高速になるのです。Scriptでスプレッドシートの操作をしていて実行速度が遅い!と感じたことがあると思います。今回はスプレッドシートを操作する場合に処理速度を格段に速くする方法をお伝えします。tonari-it.com2016.04.05そこで、getLastRowメソッドとgetRangeメソッドを組み合わせます。getRangeメソッドによるセル範囲の取得getRangeメソッドは当ブログでも何度か紹介していますが、以下の記述をすることで、特定の行番号、列番号のセルを基準にして、そこから指定した行数、列数のセル範囲を取得します。列数)行数、列数は省略することができ、省略した場合はそれぞれ1行、1列を指定したことと同様になります。前述のシートであれば、以下のような命令にすれば、C列の見出しを除くセル範囲が取得ができます。2);行番号2、列番号3のセルつまり「C2」セルから2行、1列分(省略時は1列になりますからね)のセル範囲の取得ということです。行番号は、いつも2行で一定というわけではなく可変です。そこで、getLastRowメソッドを使って、シート上にデータのある最終行の行番号を取得するようにします。1);と書き換えることができます。今回の例では、データのある最終行数は3です。見出し行を除きたいので、マイナス1をして、結果として2が行数の指定となるべき、ということです。列データを配列として取得するこうして取得した列データですが、getValuesメソッドを使えば、そのセル範囲内の値を配列として取得することができます。Rangeオブジェクト.getValues()これを使って、取得した配列の中身を見てみましょう。スクリプトとしては以下のようになります。1).getValues();Logger.log(data);}これを実行すると、ログには以下のように出力されます。[15f9bc855917e91a]]配列として取得ができました。1列のデータなので、本当はできれば一次元配列になって欲しいのです...というのも、一次元配列であれば、以下記事のindexOfメソッドで、特定の値を含むかどうかが簡単に判定できるからです。Scriptでスプレッドシートのデータを配列に格納して操作をする方法をお伝えしています。今回は配列を検索するindexOfメソッド、lastIndexOfメソッドの使い方です。tonari-it.com2017.03.25しかし、getValuesで取得できるのは、二次元配列なのです。いうことで一工夫必要ですね。Scriptでスプレッドシートの列データを配列として取得する方法をお伝えしました。指定してセル範囲を取得するgetLastRowメソッドで、シートのデータのある最終行番号を取得するしかし、今回getValuesメソッドで取得した配列は二次元配列でした。この二次元配列を掘って、特定のメッセージIDが含まれているかどうかを知る方法...次回お伝えしていきます。ScriptでメールやHTMLドキュメントからデータを抽出することができます。本シリーズでは、フォーム送信の通知メールからデータを抽出してスプレッドシートに追加するツールの作成を目指します。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。ScriptGASでGoogleスライドのプレゼンテーションを操作するはじめの一歩GASでGoogleスライドのプレゼンテーションを操作する方法についてのシリーズがはじまりました。GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩をお伝えします。Scriptでサイドバーを作る方法のはじめの一歩の概要編スプレッドシートやドキュメントのサイドバーはGASで自作することができます。今回は、GASでサイドバーを作成する前にまず読んで起きたい、その概要としてサイドバーとは何?その作り方は?についてお伝えします。Scriptで備品購入申請を題材にワークフローを作っております。今回はGASでフォーム送信した内容をイベントオブジェクトから取り出してそれを含めたメッセージをGmailで送る方法です。Scriptで日付&時刻の便利ライブラリMoment.jsを使う方法についてお伝えしています。今回は日時の書式フォーマットを指定するformatメソッドの使い方です。Scriptでダイアログを使ったcsvファイルアップローダーを作成する方法をお伝えするシリーズです。今回は、GASのダイアログでアップロードしたファイルをサーバー側に渡す方法です。Script【GASユーザーのためのHTML入門】よく使う基本のHTMLタグを紹介しますGASユーザーのためのHTML・CSSによるWebページ制作入門をお伝えしています。ScriptによるWebページをする際に、よく使う基本のHTMLタグについて解説をします。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。