GASでGoogle Spread Sheetを少しだけ操作する

GASでGoogle Spread Sheetを少しだけ操作する

どうも、さむらいです。Xin Chao!

本記事執筆時は日本に一時帰国してましたが、きっと掲載する頃にはまたベトナムにいると思います(※編集部:そのとおり!)。
日本滞在期間注に安売りだった冬用コートを買ったのですが、暖かいベトナムではきっと不要ですね。ぐぬぬ。。。

『GAS』 とは

そもそも『GAS』とは「Google Apps Script」の略称です。
「Google Document」や「Google Spread Sheet(スプレッドシート)」からExcelで言うところのマクロのようなスクリプトを実行することができます。言語仕様はJavaScriptですが、処理はサーバ側で実行されます。

より詳しく知りたい方はコチラからどうぞ。とても分かりやすく説明してくれています。

なぜこのタイミングで『GAS』を?

私が所属する検証チームでは、毎回ブラウザ毎のテストケースを手作業でコピーして作っています。
今回、来年から使う新フォーマットの検証シートを作成するにあたり、ブラウザことにワークシートを分けて作ることになったため、このコピー部分を自動化したいなと思ったんです。

元々検証シート自体が「Google Spread Sheet」で作成されているとなると、自ずと選択肢は『GAS』 しかないワケで。

新フォーマットの検証シートの表紙には、コピーしたシート内のテストケースの件数も自動で取得して、進捗率を自動計算できるようにしたかったという意図もありました。その辺を全部手作業で計算するのは、いくらなんでもアナログすぎるでしょう?

そしてせっかく『GAS』を触るんだし、ついでにブログ化しちゃえということで。

スプレッドシートをコピーして、名前を変更する

ということで、早速実践。
『GAS』のスクリプトエディタはこのメニューから開けます。
(※「Google Spread Sheet」の場合)

エディタは新しいタブで開かれます。
今回コピーしたいのは、アクティブでないシートなのでエディタには以下のように書きます。

「getSheets()」の返り値は配列になるので、特定のシートだけを処理する場合は、 「sheet.getSheets()[0];」と書けば0番目の位置にあるシートを取得できます。
後ほどこの配列を使って処理を行うことになるので、今はこのまま進めます。

コピーしたいシートは配列の3番目にあるシートなので「sheetList[3]」に入っているシートオブジェクトに対して「copyTo」メソッドを使います。そしてどのスプレッドシートにコピーするかを引数で引き渡します。今回はスクリプトを実行するスプレッドシート内でコピーするので、「getActiveSpreadsheet()」で取得した自分自身のシートオブジェクトを渡します。

コピー時は名前を指定できず、シート名は「コピー元のシートの名前 – コピー」となるため、次はこのシート名を変更したいと思います。

そして以下の画像が実行結果になります。※いっぱい追加されていますが、ブラウザの数分だけコピー関数を処理した結果です。

簡単すぎてヘソでお茶が湧きますね。
沸くの方じゃないです。どんどん湧いてくるよほんとに。

とは言っても、情報を探してる時は内容がひとまとまりになっているサイトもなく、結構リサーチするのに時間がかかってしまいました。
同じことを実践したい人が、どうかこの記事で救われますように、ハッシュタグ的なキーワードを置いておきますね。

#Google #GAS #SpreadSheet #Apps #Script #スプレッドシート #シート #コピー #複製 #リネーム #ベトナム

なお、『GASに関する文献も、併せて以下に紹介します。参考になりますよ!
<参考:Libro『初心者のためのGoogle Apps Scriptプログラミング入門』>
<参考:Google『Google Apps Script』(英語サイト)>

ではまたね〜。

コメント