GASサンプル集

条件付き書式を1行でやる

2011/08/19 7:15 に Masakazu Muraoka が投稿

SpreadSheetの条件付き書式は便利ですが、1セルにしか適応できません。

例えば、簡単なTODOリストを作成して、完了したタスクの行をグレーにしたいとしましょう。その場合には条件付き書式ではやや不十分です。





ここでは、GASのonEditハンドラを利用して条件付き書式を1行に適用する処理を作ってみます。

サンプルコードは以下です。

function onEdit(event)
{
  var keyword = '完了';
  var keywordCol = 4;
  var columnStart = 1;
  var columnNum = 5;
  var range = event.source.getActiveRange();
  var rowidx = range.getRow();
  var sheet = event.source.getActiveSheet();
  if( sheet.getRange(rowidx, keywordCol).getValue() == keyword ){
    sheet.getRange(rowidx, columnStart, 1, columnNum).setBackgroundColor('gray');
  } else {
    sheet.getRange(rowidx, columnStart, 1, columnNum).setBackgroundColor('white');
  }
}

サンプルコードでは、4列目の「ステータス」に keyword で定義された「完了」という文字が入力されると 1列目から5列目がグレーになります。グレーにする範囲は columStart, columNum の数値を変更することで調整できます。

function onEdit(event) で定義している onEdit はスプレッドシートが編集されたときに呼び出されるイベントハンドラです。引数のeventには編集されたセルの情報などが格納されています。

onEditを使うとスプレッドシート編集に便利な処理を作り込むことができます。
このサンプルの他にもいろいろな使い道があるので試してみてください。

Googleフォームで自動応答メールを送信する

2011/08/11 1:48 に Masakazu Muraoka が投稿   [ 2011/08/19 7:34 に更新しました ]

Google フォームでイベントや勉強会の参加申し込みフォームを作ることができます。
しかし、Googleフォームは標準で申込者に自動応答メールを送る機能がありません。

ここでは、Google Apps Script(GAS)を使って申込者に自動応答メールを送信するサンプルを紹介します。

GASのソースコードはこちら

function formSubmitReply(e) {
  var sender = "Google Apps Lab"
  var subject = "GAS勉強会 お申し込み完了通知";
  var userName = e.values[1];
  var userEmail = e.values[2];
  MailApp.sendEmail(userEmail,
                    subject,
                    userName + " 様\n\n" +
                    "お申し込みありがとうございます。\n" +
                    "勉強会の参加受付を完了いたしました。\n\n" +
                    "当日お会いできるのを楽しみにしております。\n\n" +
                    sender,
                    {name: sender});
}​


Googleフォームでフォームを作成し、そのスプレッドシートのスクリプトエディタを開きます。
そしてこのスクリプトを formSubmitReply という名前で保存してください。

次に、スクリプトエディタのトリガーを以下のように登録します。


イベント「スプレッドシートから」「フォーム送信時」に formSubmitReply を実行します。
これで、参加者が参加申し込みを送信した際にメールが送られます。

senderやsubject、メール本文は任意にで変更してお使いください。

1-2 of 2