各種のGoogleサービスをJavaScriptを使って、さらに便利にカスタマイズするための言語「Google Apps Script」を勉強したので学習メモを残しておきます。
基本
//アクティブなスプレッドシート
var ss = SpreadsheetApp.getActiveSpreadsheet();
//選択中のシート
var sheet = ss.getActiveSheet();
//上2つを一気に指定する方法
var sheet = SpreadsheetApp.getActiveSheet();
//操作セルの指定
var range = sheet.getRange("A1");//その1
var range = sheet.getRange(1,2);//その2(行,列)
//値の挿入
range.setValue(100);
//背景色の設定
range.setBackground("#ff0000");//16進数以外に"red"などでも可
//コメントを挿入する
range.setComment("コメント");
デバッグ
//ログを表示(表示→ログ)
//console.logの代わり
Logger.log();
//メッセージボックス
//alertの代わり
Browser.msgBox("hello!");
その他の関数
//メール送信
MailApp.sendEmail(
"メールアドレス",
"件名",
"送信内容"
);
//メニューを追加する
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menu = [
{name: "メニュー名",functionName: "関数名"},
{name: "メニュー名",functionName: "関数名"}
];
ss.addMenu("メニュー表示名", menu);
//スプレッドシートを開いた時に実行する
function onOpen(){
}
//スプレッドシートの編集時に実行する
function onEdit(){
}
//外部サイトにPOSTでアクセス
var payload = { "title" : "タイトル", "msg" : "メッセージ" };
var options = { "method" : "post", "payload" : payload };
UrlFetchApp.fetch("アクセスするURL", options);
Google Formとの連携
function formReport(e){
//フォームに設定したタイトル(日本語でもOK)で指定
var name = e.namedValues["お名前"] ;
var email = e.namedValues["メールアドレス"] ;
var content = e.namedValues["内容"] ;
}
※上記はGoogleFormのスクリプトエディタではなく、結果を入れるためのSpreadSheetのスクリプトエディタに記述します。
GoogleFormのほうでは「e.namedValues[]」のようなカタチで送信内容を取得することができませんでした。