Google Apps Script でできることを5つのメソッドと関数から考えた

GASでできること
Google Apps Script(GAS)は、スクリプトレベルでWeb通信などができ、マーケッターでも使いこなすととても便利なツールになりますよね。

こんにちは、GAS大好きカグア!です。最近はもっぱらツールはGAS製が多くなっています。

本記事では、マーケター向けに2017年12月時点のGoogle Apps Script でできることを、メソッドや関数から考えてみました。

関連記事
>>URL一覧からタイトルを一括DLするGoogle Apps Script
>>Google Apps Script とAPIを使った自動メール配信システム作成
>>簡単にGoogleアナリティクスから数値を取り込めるAppsスクリプト(修正版)

Google Apps Scriptは業務に役立つ

Google Apps Script(GAS)とは

Googleが提供しますプログラム環境です。開発と実行の両方を提供しています。開発ではスクリプトエディタでコードを書き、実行ではGmailやGoogleスプレッドシートなど様々なアプリケーションにおける作業効率化を図れます。

実際、Googleでも働き方改革に言及するような講演もあるほどです。ちなみにGASは「ガス」と読みます。イントネーションはエネルギーの「ガ」スではなく、平坦に「ガス」です。

上記の動画では、IBMの人工知能であるWATSONとGoogle Apps Script を連携させて、業務効率を上げた事例が紹介されています。Google Apps Script で出来ることを知るのにとても良い動画となっています。Google Apps Script は開発者だけでなく、現場レベルで業務効率化に役立つツールといえます。

Googleドライブから簡単に始められる

さて、Google Apps Script を利用するには、Googleスプレッドシートなど、Googleドライブアプリケーションから何かしらのファイルを新規作成し、ツール>スクリプト から簡単に開発がはじめられます。
Google Apps Script

あとは、Google検索などをしてネット上に数多くあります、スクリプトやノウハウなどの知見を活かすことで、さまざまな業務効率化が図れるのです。しかも、無料ではじめられます。

できることはメソッドから考えても良い

Google Apps Script のAPIリファレンスは英語のみですが、Chromeの右クリックから日本語に翻訳できます。
>>Calendar Service  |  Apps Script  |  Google Developers
日本語に翻訳

上図ではGoogleカレンダーと連携していろいろなことができそう、と想像できます。
Google Apps Script のカレンダー

それでは、マーケターがGoogle Apps Script を使うと、どのようなことができるのかを、メソッドや関数から考えてみたいと思います。

GASのメソッドから考える

UrlFetchApp.fetch()

このメソッドを使いますとサイトにアクセスし様々なデータを取得できます。たとえば、あるキーワードにおけるYouTubeのサジェストを取得しています。メニューもカスタマイズ出来ます。
fetch

Google Apps Script で以下のように記述しますと、URL「~」からデータを取得してきてテキスト(getContentText())にしてdataに格納してくれます。

var url = “~”;
var data = UrlFetchApp.fetch(url).getContentText();

>>Google Apps Scriptによるスクレイピング – YouTube

しかもこのUrlFetchApp.fetch() のすごいところはBASIC認証など、パスワードがかかっているページでも認証情報を送りさえすれば、ページ情報を取得できるのです。実際、こちらの記事ではそうした手法を活用し、生活に活かしているようです。
>>Google Apps Scriptでクレジットカード利用明細を毎月自動で奥さんにメール送信する – Qiita

なお、fetchする回数には上限がありますので注意して下さい。

getValue()・setValue()

Google Apps Script を記述するワークシートのセルを操作できます。getValue()はセルの値を読む、setValue()は書き込む、です。上記の動画もこのメソッドを使って、セルにサジェストの内容を出力しています。

var kw = sheet.getRange(“A1”).getValue();
sheet.getRange(“B1”).setValue(“~”);

たとえば、Googleアナリティクスのデータをセルに書き込んで記録しておく。さらにそれを定期的にメールする、といったこともできることとしてもおすすめです。

また、Google製品との親和性もバッチリです。Googleカレンダーなどからも簡単にデータをひっぱってこれます。
>>Google Apps ScriptでGoogleカレンダーの記録をスプレッドシートに出力する

スクリプトの定期実行

前述のメール送信については、Google Apps Script に実装されています、定期実行コマンド=トリガー を設定することで更に便利になります。毎日メールするなどです。GASは定期実行をすることで、さらに定型的なマーケティング業務の効率化につながります。

スクリプトエディタから編集>現在のプロジェクトのトリガーから設定が可能です。
トリガー

時間単位や日単位など詳細に設定できます。こうした自動実行はワークシートやスクリプトエディタを閉じても、ちゃんと実行してくれます。
トリガー詳細

定期的にSlackへ投稿する、といったGoogle Apps Script も定番のコードになりつつありますね。
>>Google Apps ScriptでスクレイピングしてSlackに定期ポストするbotを瞬殺で作った – Qiita

それでは、Google Apps Script 以外でも、スプレッドシートには非常に強力なマーケターがぜひとも活用したい関数がありますので、ご紹介します。

スプレッドシートの関数から考える

IMPORTXML()

こちらは何とワークシートの関数でありながら、外部のサイトへアクセスしデータを取得してくるというものです。

IMPORTXML() 関数は、XMLやHTMLなど構造化データを指定しますとそこからデータをひっぱってくる関数です。ようは、Webサイトなどと通信をして、データを取得してくれるのです。
>>IMPORTXML – ドキュメント エディタ ヘルプ
>>

たとえば、=IMPORTXML(“https://www.youtube.com/results?search_query=スタバ”,”//div[@id=’results’]//h3/a/@href”) のように記述しますと、YouTube検索「スタバ」で表示された動画のURL一覧から、リンク先URLをひっぱってきます。
importxml

この関数の凄いところは、一覧になっていればそれを自動でその下のセルに列挙してくれるところです。

こちらの記事では、Yahoo!ファイナンスからデータを持ってくる記述を紹介しています。
>>Google Docs スプレッドシートのimportXMLの使い方 – Seamonkey-Director

URLの後ろに記述しますXPATHについて、こちらで詳しく説明されています。
>>XPathのまとめ、要素の参照方法いろいろ │ Web備忘録

GOOGLETRANSLATE()

Instagramなどのハッシュタグを大量に精査するとき、英語のハッシュタグですと「これ何ていう意味?」というものがあるかもしれません。そんなとき、いっきに翻訳できますのが、GOOGLETRANSLATE() 関数です。
translate

上記の動画では、Instagramで人気の love******* というハッシュタグを集めてきたものです。love を除去し、GOOGLETRANSLATE() 関数でいっきに翻訳してみました。

やっぱりこのようにして日本語になっていますと、見通しがよくなり、例えば会議などでタグ戦略をチームで考えるとき、見やすくて良いかと思います。

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~ | 高橋宣成

詳解! GoogleAppsScript完全入門 ~GoogleApps & G Suiteの最新プログラミングガイド~ | 高橋宣成 |本 | 通販 | Amazon
Amazonで詳しく見る

書籍は2017年12月のこちらが新しいという点でもおすすめ。

>>人気の「Google Apps Script 関連本」最新一覧はこちら。
Amazonで詳しく見る

私の遭遇したエラーと解決方法

さて、このように様々なことができるGASですが、実際にスクリプトを組んでみますとエラーに遭遇すると思います。

エラーメッセージで検索していただければ見つかるものも多いので心配は不要ですが、わたしが遭遇してハマったものを掲載します。

undefined からプロパティ「~」を読み取れません

これは、本来(e)で受け渡される何かしらの値が入ってないよ、と怒られているエラーです。
タイプエラー

実行時にそこに何か入るよう修正すればOKです。

ReferenceError:「~」が定義されていません

~ には変数がきます。わたしが遭遇した例としては、複数のfunction() にまたがって使いたい変数があり、それをfunction() のなかで、var ken = ~ と定義していたこと。
定義されてません

ほかにもまたがるようにして使いたい変数は、fuction() のそとに、var ken =~ と書きます。

現在ファイルを開くことができません

これ、どういうときに出てきたのか失念してしまったのですが、一旦Googleスプレッドシートのファイルを閉じて、再度立ち上げ直したら、回復してました。
現在ファイルを開くことが出来ません

メソッド名で検索すると見つかりやすい

上記のように、Google Apps Script といいましても、上記のようなメソッドを書いてコードを組むわけです。ですから、Google Apps Script でできることを調べたり、エラーでつまづいたりするときには、そのメソッド名を含めた検索ワードでネット検索しますと、多くの情報が見つかります。

Google Apps Script は、さすがのGoogle製だけあって、ユーザーが多いこともメリットの一つです。具体的なメソッドや関数名などで検索しますと、以前よりは本当によく出てくるようになりましたね。

エラーなどもそうしてぜひ克服してみて下さい。

公開の範囲~Webアプリも作れる

皆元さんの記事で知ったのですが、Google Apps Script では、公開の範囲が広くなりました。なんとWebアプリケーションまで作れてしまいます。
>>GoogleスプレットシートをRSSにする方法 | どこでもドア(ジャンク)

じっさいどう使うのかまではわかりませんが、Googleも開発環境としての認知を広げたい意図があるようにも見えますね。でもそれくらい使いやすいと思います。
公開の範囲が広がった

Webアプリケーションとして公開しますと、こんな感じにパラメーターを渡して、ページ内容を動的に変えられます。URLはGoogle特有のものになってしまいますが、いろいろと使えそうです。
Google Apps Script でできること

Googleフォームで作った問い合わせフォームから自動返信など、Google Apps Script でできることはまだまだ広がりそうです。

ぜひみなさんもいろいろと開発してみてはいかがでしょうか。

Google Apps Scriptビギナーズガイド: Googleをプログラミングせよ! PRIMERシリーズ (libroブックス) | 掌田津耶乃| Kindleストア(電子書籍)

Google Apps Scriptビギナーズガイド: Googleをプログラミングせよ! PRIMERシリーズ (libroブックス) | 掌田津耶乃 | 工学 | Kindleストア
Amazonで詳しく見る

プログラミング関連本では有名な掌田さんの書籍。※電子書籍です。

GASでできることリンク集

GAS事例が集まるコミュニティ

エンジニア向けコミュニティ大手、Qiita でも多くの知見が投稿されています。
>>「Google Apps Script 」の検索結果 – Qiita

はてなもエンジニアがたくさん集まるコミュニティとして有名です。
>>タグ「GoogleAppsScript」を検索 – はてなブックマーク

Google Apps Script 連載やブログ

エクセルVBAが分かる人なら理解も早いです。
>>Excel VBAプログラマーのためのGoogle Apps Script入門 – @IT

Google Apps Script からは簡単にメールも送れます。
>>Google Apps Script | 非IT企業に勤める中年サラリーマンのIT日記

こちらのブログ記事はとてもわかりやすいです。
>>「Google Apps Script」の記事一覧 | いつも隣にITのお仕事

プログラミング関連書籍で有名なライターの掌田さんの解説記事。できることがたくさん書いてあります。
>>初心者のためのGoogle Apps Scriptプログラミング入門 – libro

GoogleAppsScriptクイックリファレンス | 横山 隆司

GoogleAppsScriptクイックリファレンス | 横山 隆司 |本 | 通販 | Amazon
Amazonで詳しく見る

まとめ

GASは非常に強力な業務効率化をもたらしてくれます。Googleの圧倒的なサーバーリソースがあってこそのものですが、さらに無料で使えるというのは凄いです。

また、外部サーバーへの通信も標準でそなわっていたり、GoogleカレンダーやGmail などGoogle製品との親和性もバッチリです。Google Apps Script や、さらに上位の App Makerなどによる業務システムへの活用は広がるのではないかと思います。

みなさんも機会があればぜひ自作してみてはいかがでしょうか。

・ ・ ・ ・ ・

>>安っ!アマゾンで半額以下になっている食品タイムセール
セール特設ページを見る

↓↓↓無料のニュースレターを配信中です

GAS