blog

コピペでOK!GAS(Google Apps Script)は至高の管理ツール ※随時更新

前置き(GASとはなんぞや の私的見解)

GAS(Google Apps Script)は、フリーの表計算WebサービスのGoogle スプレッドシートで使える、JavaScriptベースのプログラムです。
Excelでいうマクロに相当するものですが、マクロは独自性が強くてプログラム言語を一つ丸々覚えるくらいの学習コストがかかります。(私的感想)

ですがGASとスプレッドシートならJavascriptがある程度書ければ、GAS独自の関数やルールを覚えるだけでif文やfor文とか変数・配列の持ち方などはJavascriptまんまでかけるので学習コストが低く、かつ表計算側でできることと組み合わせると簡易なWebサービスみたいなことも出来たりします。

しかもスプレッドシートはエクセルには無いWebアプリならではの機能(多人数での同時編集、バージョン管理、Webページの内容をリアルタイムに取得してテーブルにしたり、Webにアップされている画像をURLで取得したり、RSSにして配信したり、などなど)もあるため、ヘタにExcelで頑張るよりもガッツリおすすめです。
しかも無料!

もちろんExcelの良さもあり(罫線や文字周りなどの書式関連など)、Excelじゃ無いと表示崩れたり、今までがっつりマクロ組みまくったExcelファイルがあったりとか、クライアントがWebサービス使えなかったりなどでExcelが全く不要になることは無いと思うのでそこは適宜何とかしながら両立させてください。

僕とお仕事してくれる方は上記を踏まえて是非とも完全Google スプレッドシート化のご協力お願いいたします。
m(_ _)m

※最終更新日 2018/03/29

シート読み込み

はじめの一歩。
まずはこれをしないと始まりません。
データを取りたかったり、セル内容をいじりたいシートをこれで指定します。

※複数の関数を組み立てていくと何度も同じシートを読むことがよくよくあります。
 何度も読むと重たくなるため、こちらのを参考にさせてもらいました。
 GASでSpreadsheetを操作する自分的ベストプラクティス – Qiita

シートのデータを配列で全取得

特定のセルの値を取得したい、はGASをやっていたら多発するかと思います。が、何度もセルの値を取りに行くと、すぐにべらぼうにクッソ重たくなってしまいます。
なので複数のセルの値を取得したい場合は、セルの値を丸ごと一回で全部取得してしまって配列化し、その配列から一個一個とった方がバリ早くなります。

参考(38倍も早くなったようです):
Google Apps Scriptのスプレッドシート読み書きを格段に高速化をする方法
Google Apps Scriptのスプレッドシート読み書きを格段に高速化をする方法

最終行 取得

主な使い方は行数を取得してforループ回す時など。
注意点としては、データの入力されている最終行ではないこと。
その場合は別途関数を組むか、不要な空行をあらかじめ削除しておくかになります。

セル指定

特定のセルの値を取ります。
※先述した通り、これを多用しすぎるとクッソ重たくなるので注意

ログ出力

JavaScriptのconsole.log()みたいなのの代わりです。

​メールを送る

実行したタイミングでメールを送ることができます。
発信元は実行を許可したGmailからになります。

※初回実行時にメール送信の許可を確認されます

日付のフォーマット

Googleスプレッドシートでは日付データはそのままではめっちゃ見辛いです。
(「Mon Feb 01 00:00:00 GMT+09:00 2016」 みたいな感じ)
なので使いやすい形式に変換した方が何かとよいです。
(「yyyyMMdd」など。詳しいフォーマット形式はこちらあたりご参考に)

また「1週間後」などの日付計算させるのもそのままではやりづらいため、計算用に日付を数値化することで、足し算引き算で日付を出せるようにします。
(例えば1週間後であれば、取得した数値に+7してもらえばOK)

特殊文字

この辺もよく使うのでメモ。
タブはhtmlソースなんかを編集してセルに書き込みする場合などに活躍します。

Gmail検索

Gmailの検索窓でできることがスプレッドシートでもできちゃいます。
特定の内容のメールを毎回検索かけたりする場合、プログラム組んでおくことで、特定の時間帯にメールで送ってくれるようにしたり、スプレッドシートを開く度に自動集計してくれたりできるようになります。

修正した履歴の修正箇所の探し方

GASのスクリプトエディタも独自にバージョン管理の機能を持っています。
ですが変更点が見づらいため、これを使うとよりグッドです。


「ファイル」→「変更履歴を表示」
(もしくはCtrl+Shift+Alt+H
(Macはcommand+shift+alt+H

変更したい日時をクリックし、表示されたソースを全コピー

差分チェック
(Windows…WinMerge、Mac…CompareMerge、Webサービス…difffなど)

あとがき

随時更新いたします。更新状況は こちら(Twitter) よりご確認ください!

※もしご指摘ありましたら教えてくださいよろしくお願いします!

Sponsored