このようなツイートをしたところ、Google Spreadsheetに簡単にプログラミングしたシートに興味を持ってくださった方が多かったです。

 

そこで、プログラミング初心者向けに、Google Apps Scriptを利用して、Google Spreadsheetのデータ取得自動化について、簡単に解説してみたいと思います。

このチュートリアルでできるようになること

このチュートリアルでは、以下のことができるようになります。

  • Google Apps Scriptと、Google Spreadsheetを連携して、ツイッターのフォロワー数を毎日24時に自動取得して列に加えることができる

Google Apps Scriptとは、Googleが提供しているプログラミング言語、および開発環境です。

通称GASと呼ばれています。ExcelでいうVBAに近いです。

大きく違う点は、Google Apps ScriptはほぼJavaScriptで書かれている点で、JavaScriptと本当にささいな表現の違いだけを押さえておけば、簡単にコードを書くことができます。

また、Google Apps ScriptはほかのGoogleサービスと連携することができます。例えば、

・Google DocsのテキストをGoogle Spreadsheet用に自動変換 ・Google Formで送信されたメッセージが来たら自動でSlackに飛ばす

みたいな処理をGoogle Apps Scriptを利用することで実装することができるようになります。

どんなことが学べるか

このチュートリアルで学べることは以下の通りです。

  • Google Apps Scriptを用いた、簡単なコーディング
  • Google Spreadsheetに連携する方法

どんな人におすすめか?

このチュートリアルは、以下の人にお勧めです。

  • ベンチャーに入社予定、もしくは入社していて、Google Spreadsheetを利用している
  • 普段の業務をプログラミングで自動化してみたい、もしくは入社してから自動化できるようなスキルを持っておきたい

上記のようなニーズに関しては、このチュートリアルを一周することで、

  • Google Apps Scriptを利用することで、業務の自動化が意外に簡単にできるように実感できる
  • 自動化のプロセスを学ぶことで、ほかにも応用が利くようにできる

と思います。 基本的には、JavaScriptの基礎が分かっていれば簡単に進められます。コードも15行くらいなので、すごく簡単です。 基礎的なJavaScriptは、Progateで勉強してみてください。 ProgateでJavaScriptの基礎を学ぶ

準備編

それでは、さっそく準備していきましょう。まずはGoogleアカウントを用意しておきます。もしない場合は、新しく作ってください。 > Googleアカウントの新規作成方法 すでに存在している場合は、スキップしてかまいません。

Google SpreadsheetとGoogle Apps Scriptを準備する

次に、Google Apps Scriptを準備しましょう。Google Driveの画面から、Google Spreadsheetを準備する容量でアプリを作成することができます。準備方法はこちらに詳しくまとまっておりますので、みてみてください。以下のページのように、最初にGoogle Spreadsheetを開き、次にGoogle Apps Scriptを開きます。

  • Googleドライブからスプレッドシートを作成する
  • スプレッドシートからスクリプトエディタを開く
【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く

実装編

有料部分では、本格的に実装していきたいと思います。 まず、実行する関数の定義を行います。

function getFollowers() {
}

紐づいているスプレッドシートを取得

次に、SpreadSheetAppクラスから、現在紐づいているスプレッドシートを取得できる、getActive()メソッドを実行します。こうすることで、spreadSheetで、スプレッドシートを取得することができます。
各クラスとメソッドについては、下記記事が詳しいです。
GASでSpreadsheetを操作する自分的ベストプラクティス
それでは、書いていきましょう。
function getFollowers() {
 var spreadSheet = SpreadsheetApp.getActive(); //紐づいているスプレッドシートを取得します
}
スプレッドシートから、すべてのシートを取得する

今度は、スプレッドシート一つを取得することができました。

今度は、スプレッドシートの中のシートをすべて取り出して、変数に代入してあげます。

そのさい、getSheetsメソッドを利用すると、リスト形式でシートを取得することができます。

Google Apps Script で Spreadsheet にアクセスする方法まとめ

それでは、実装していきましょう。

function getFollowers() {
 var spreadSheet = SpreadsheetApp.getActive(); //紐づいているスプレッドシートを取得します
 var sheets = spreadSheet.getSheets(); //スプレッドシートから、すべてのシートを取得します
}
これですべてのシートを取得することができました。

for文ですべてのシートを一つ一つ取り出す

さて、最後にfor文ですべてのシートを一つ一つ取り出します。
以下のようなコードで、sheetsの個数から、indexを取り出します。
これは簡単に言うと、例えばsheetsの中に5つの要素がある場合、0,1,2,3,4がindexとして順に取得することができます。
それぞれのシートにsheets[1], sheets[2], sheets[3]のようにアクセスすると、それぞれのシートを取得することができるのです。参考URLを乗っけておきます。
JavaScriptの色々なfor文|for・for-each・for-in・for-of
それでは、実装してみます。
function getFollowers() {
 var spreadSheet = SpreadsheetApp.getActive(); //紐づいているスプレッドシートを取得します
 var sheets = spreadSheet.getSheets(); //スプレッドシートから、すべてのシートを取得します
 for (var index in sheets){ //取得したシートのリストから、indexを0からシート数分取得します
 }
}