Google Apps Script @福岡

GASで面白Webサービス&コスト削減や!

Google Apps Script 講座初級編「GASでスプレッドシートに書き込む」

はじめに

後藤銃士です。3回目ともなりますと、流石に1行コピペというわけにはいかなくなってきまして、今回は3行のコピペになります。あと、スプレッドシートの準備も必要となります。

ですが今回の講座では、なにかしら外部から情報を取得してきたものを一旦、スプレッドシートに保存できる、ということを理解できればOKです。今回は「書き込む」だけしか扱いませんが、「読み出し」までできると簡単なDB(データベース)としてのパワーを発揮することになります。イヤほんとよ?

この機能が役に立つのは

先程も書きましたが、取得情報を「保存できる」これです。といいますか GAS を使って期待されているのはおおよそ、取得してきたデータを、

ことになるんですが、その一翼を担うわけです、この講座は!

とはいえ、いうても3行コピペですからね、その辺りは流石 GAS といったところでしょうか。

今回は初級編「GASでスプレッドシートに書き込む」

対象

学べること

Google Apps Script を使った スプレッドシートへの書き込みの仕方

講座スタート

今回はまず、スプレッドシートを用意します。ブラウザ開き「drive.google.com」を入力してGoogle Drive 画面を開きます。

f:id:jijyoronn:20181221235931p:plain

「新規」ボタンから「Google スプレッドシート」>「空白のスプレッドシート」を選びます。

f:id:jijyoronn:20181222000213p:plain

すると、「無題のスプレッドシート」が表示されると思います。

f:id:jijyoronn:20181222000244p:plain

そのときに、URLをコピペしておいて下さい。私の場合は「https://docs.google.com/spreadsheets/d/1Guk0FXiVGxVMXLZA83u3TNpdMVgSPikKvjC7Jkej-zg/edit#gid=0」がそれにあたります(長い)。

ではそれはおいといて、新しくタブを開き「script.google.com」を入力してコードを書ける状態にして下さい。

そして今回はでは1行目の3行目の間に

var spreadsheet = SpreadsheetApp.openByUrl('あなたのスプレッドシートのURL'); var sheet = spreadsheet.getSheetByName('シート1'); sheet.getRange("A1").setValue("え?!マジで?");

とコピペして下さい。

f:id:jijyoronn:20181222000514p:plain

'あなたのスプレッドシートのURL'にはさっき保存していたスプレッドシートのURLを入れてくださいね。

で、例によって保存、後横向き三角ボタンを押してみて下さい。やっぱり承認関連のメッセージが出てきます。

f:id:jijyoronn:20181222000703p:plain

こういうのって最初だけなんでまあ、気にせず、前回同様「許可を承認」とか「許可」とかしていきましょう。

すると、もとの画面に戻ります。なにもしていない顔してますよね…。

でもですよ?

さっきメモした URL を叩くかスプレッドシートを開いてみて下さい。

追加されてますね?

f:id:jijyoronn:20181222000727p:plain

ほら。

できた。

3行でできちゃった。

解説

細けえことはあれなんですけど、わかってほしいことは、

var spreadsheet = SpreadsheetApp.openByUrl('あなたのスプレッドシートのURL');

まず、書き込む対象となるスプレッドシートの情報を取得するために URL を通してスプレッドシートの情報を取り込んでます。取り込んだ結果が spreadsheet ってところに保存されます。

var sheet = spreadsheet.getSheetByName('シート1');

で。取り込んだスプレッドシートの情報から今度は、対象となるシートを、シート名を指定することで絞りこみます。絞り込んだ結果、sheet ってところへ保存されます。

sheet.getRange("A1").setValue("え?!マジで?");

ここからなんですが、絞り込まれたシート「シート1」の、A1 へ「え?!マジで?」を設定しなさい、という記述がこれになります。 sheet から Range(範囲のこと)A1 に対して、Value(え?!マジで?)という内容を set (設定)しろ、ということなります。

スプレッドシート → シート → セル というように書き込む先を絞っているわけですね。 それがこの3行に込められている、というわけです。

読み出す場合は、getValue を使います。そのあたり知りたければリファレンスを眺めておくといいですよ。

しかし凄いなあ。もうスプレッドシートまで操作できるようになってしまっている…。

次回はトリガーという自動で処理をさせる記述を学ぶことしましょう。今まで見てきた、メール送信やスプレッドシートに書き込むことを組み合わせることが出来ます。いやーやっとプログラムの勉強っぽくなりますね!ご覧いただきありがとうございました。