GASとgmaiの連携

・はじめに

今回は、Googleが提供するプログラミング言語「Google Apps Script」(以下GASと略します)についての概要と、GASで出来ること。特に身近な内容となるgmailにフォーカスしてその利便性について紹介させていただきたいと思います。

・GAS(Google Apps Script)とは

皆さんGoogleについてはご存知だと思います。例えばGoogle Mapやgmailは現代人にとって非常に身近で日常生活の中で切っても切り離せないサービスとなっていることでしょう。そんな、Googleのサービスをより効率的かつ便利に利用するためのプログラミング言語がGASです。

GASを使えば、Google MapやgmailなどのGoogle関連サービスを自由に連携することができるだけでなく、使いこなせれば独自のWEBアプリを開発することも可能です。

GASの基本文法は、WEB開発には欠かせないJava Scriptがベースとなっており、これまでJava Scriptを触ったことがある人や他の言語経験がある人にとって、学習にかかるコストは非常に抑えられるものになるでしょう。ちなみに多くのプログラミング初学者がぶつかる障壁となる開発用のエディタやサーバー環境設定についても、面倒な開発環境の構築作業は必要としません。GASの場合は、ブラウザ上ですぐに利用できる専用の開発環境が予め備わっています(特別なインストールなどの作業は一切不要)。さらに無料なんです!もう素晴らしいの一言に尽きますね。

・スクリプトエディタについて(操作方法と画面構成)

前章でGASの概要についてはご理解いただけたのではないでしょうか。ここからは実際の開発を想定して、まずはスクリプトエディタの操作について、簡単に紹介させていただきます。なぜスクリプトエディタの紹介が必要になるかというと、GASのプログラミングはスクリプトエディタを使用するところから始まります。つまり、GAS開発はスクリプトエディタを開く動作が第一歩となるからです。

操作方法

まずは肝心な、スクリプトエディタの開き方についてですが、Googleスプレッドシートを開きます。スプレッドシート上段に並んでいるメニューバーから「ツール」を選択し、スクリプトエディタを開きます。そちらにコードを書いていき開発を進めていきます。

画面構成

・メニューバー:ファイルからヘルプまで一列に並んでいる上段のバーです。使用頻度が高い機能が多いので一通り触って調べてみて下さい。

・ツールバー:メニューバーの一段下にあるスクリプト操作のためのバーです。実行を繰り返してプログラムが思惑通りの動きをするか、ここの再生ボタンで容易に実行ができます。

・GASにできること

ここまでで、GASの基本的な概要と開発する上で必ず必要になるスクリプトエディタの操作方法などについて紹介させていただきました。ここからはGASを有効活用することで、実際にどのようなことが出来るようになるのかということについて紹介させていただきます。GASにできることは、多岐に渡ります。Googleには、gmailやGoogleドライブ、Googleドキュメント、Googleスプレッドシート、Googleカレンダー、Googleフォームなど多種多様で便利なサービスがあります。これらはそのまま使用しても勿論便利ですが、GASと連携させることで飛躍的に利便性や効率性が向上します。

作業の自動化

これまで毎日、もしくは月末や月初など決まったタイミングで必要とされる単純な計算などの事務作業があったとします。GASで必要なコードを記載し、実行ボタンをワンクリックすることで全自動で完了させられることは多いです。

マクロ記録によるスクリプトの自動保存

コードを勉強することが煩わしいような人は最低限スプレッドシートについている「マクロの記録」という機能の使用方法を覚えれば、計算や並び替えなどの簡単な手動での操作は、自動でスクリプトに変換されます。実際に以降の同じ作業は実行ボタン一つで解決するようになるので、プログラミングにアレルギーがあるような人にもおすすめです。

これまででGASの便利さについてご紹介させていただきましたが、まだまだほんの一例に過ぎません。次章ではこの記事の本題にもなるgmailとの連携について書いていきます。

・GASにできること(gmail)

今の時代、非常に多くの人がgmailを使用しています。これまでメールと言えば、ドコモやau、SoftBankのような大手キャリアのメールでしたが、今やそれを凌いでいるのではないでしょうか、ここからは、GASを用いてgmailをより便利にする方法を紹介させていただきます。

GASでgmailを送信

sendEmailメソッドを使用すれば、GASでgmailを送信することができます。

MailApp.sendEmail(“sample@gmail.com”, “件名”, “本文”);

イメージは上記のコードで大丈夫です。先ず、MailAppクラスで用意されているsendEmailメソッドを呼び出し、その()内で、”送り先” ”件名” ”本文” の順に指定します。複数の宛先に送りたければ配列を使用したり、もしくはカンマで区切ってアドレスを記載する方法もあります。ちなみに1日あたりのgmail送信数には制限があり注意が必要です。

  • 通常のアカウント:100通
  • Gsuite Basic以上:1500通

Googleフォームのサマリーデータを自動でメール受信

GASを使うことで、Googleフォームのサマリーデータを自動に処理でき、gmailで受信できます。例えば、週次のサマリーデータを自動メール受信することで、それ以降スプレッドシートを開く手間をなくすことができます。

gmail本文から値を取得し,スプレッドシートに自動記載

処理の流れは下記の通りです。※事前に対象のメールにラベルを付ける必要あり。

  • gmailから未読のメールを取得
  • 日付と本文にある特定の値を取得
  • 日付と値をスプレッドシートの最終行に書き込み
  • 取得したメールを既読に変更

実装方法については、人により差は生まれますが、「gmail 値 スプレッドシート」などで検索していただければ、いくつかサンプルコードがありますので、ご自身のお好みでコードを組み上げて見て下さい。

スクリプト解説(新着メール取得スクリプト)

最後に新着メールを取得する実際のスクリプトを使って、項目ごとに変数やメソッドの概念を解説させていただきます。これを理解することで、スプレッドシートへの自動保存や、添付物をGoogleドライブに保存など、様々な応用が可能になります。

以下は使用するスクリプトです。

function getNewMail() {
  // 未読のスレッドを検索対象にする
var searchCondition = ‘is:unread’;
var threads = GmailApp.search(searchCondition, 0, 50);
for (var i = 0 ; i < threads.length; i++) {
var msgs = GmailApp.getMessagesForThread(threads[i]);
for (var j = 0; j < msgs.length; j++) {
Logger.log(msgs[j].getSubject());
}
// スレッドを既読にする
threads[i].markRead();
}
}

それでは上のスクリプトに沿って解説をさせていただきます。まずは、変数定義から見ていきます。「var 変数名 = 変数の中身;」の形で変数定義をすることが可能です。変数を使うことで何度も使用したい値、あるいは定義自体が複雑なものをその後扱い易くすることが可能です。このスクリプトでは「searchCondition」という変数の中にgmailの検索ルールを代入しています。変数は利用することがとても多いので必ず覚えておきましょう。

続いて、非常に大切なメソッドである「GmailApp.search(検索条件, インデックス, 取得件数上限)」です。こちらがgmailからスレッドを取得するためのメソッドの公式になります。インデックスという概念はやや難解ですので、今日のところは一旦、「0」と記入しておいて問題ありません。「GmailApp.search(searchCondition, 0, 50);」これでは最大の取得件数を50件(※設定できる最大件数は500件まで)としています。これを実行することでスレッドが取得できます。スレッドというのはメッセージのやり取りなどの一連のまとまりを意味していてメッセージ1件1件のことではないので注意が必要です。

5行目以降での「for」文ですが、このforは繰り返し処理をすることができます。このスクリプトでは「threads」の中に複数スレッドが入っているので、スレッドを1つずつ繰り返して処理をしていきます。そんなときにfor文を使います。ここまででメッセージを取得できるようになりますが、件名を取得する場合は、8行目に登場している「getSubject()」というメソッドを使います。そして最終行の「markRead()」を実行すると既読になります。

ここまでで解説はおわりです。スレッドやメッセージの概念は複雑であり、それに対応するためfor文を使用したりするなど、少々複雑な箇所もありましたが、基本的な形となるので、このスクリプトの理解を深めることで今後gmailからメールを取得をする際には、このスクリプトを応用させた形で対応可能になるかと思います。

・まとめ

今回は、Googleが提供するプログラミング言語「Google Apps Script」について、その特徴や利便性、GASに出来ること。特にgmailにフォーカスして紹介させていただきました。この記事内で紹介させていただいたものは一例に過ぎません。独自のWEB開発だって出来るわけですから、突き詰めるとGASでできることは無限にあります。この記事が、GASについて少しでも興味を持って頂くきっかけになれば幸いです。ご覧頂きありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です