何かと楽なのでGoogle Driveのスプレットシートを使うのですが、自動化をしたいとかでApps Scriptを書いている時、スクリプトエディターから実行させるだけ時はLogger.log()
で書いておいてメニューの表示からログを表示させておけばよいのですが、セル内を変更した時に処理と行いうといった時にデバックする良い方法が見つからなかったので、シートにログを吐き出すスクリプトを作ってみました。
// ログを出力するオブジェクト var Log = (function() { // logを書き出すシート名 log という名前のシートを予め作成しておく必要があります。 var sheetName = 'log'; var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); return { write: function(val) { var row = ss.getLastRow(); var cells = ss.getRange(row + 1, 1, 1, 2); var timestamp = new Date(); cells.setValues([[timestamp, val]]); }, clear: function() { ss.clear(); } } })(); // 使い方 編集イベントなど function onEdit(e) { var ss = evt.source.getActiveSheet(); // ログを書き出す (編集のあったシート名をlogに書き出す) Log.write( ss.getName() ); // ログを全部消す Log.clear(); }
公式ドキュメントがもう少し充実して欲しいデース... (で、どうやればいいの?が結構わかりづらい気がしまーす)
[参考]
- Spreadsheet Service | Apps Script | Google Developers
- Google Apps Scriptでデバッグ - Qiita
- Google Apps Script カスタムLoggerでログをspreadsheetに書き出す · Nikushi's blog
- 作者: 得能正太郎
- 出版社/メーカー: 芳文社
- 発売日: 2015/03/27
- メディア: コミック
- この商品を含むブログ (17件) を見る