When it’s ready.

出来るまで出来ない

GAS勉強会 #1 開催しますた

Docs使ってる人ならば誰でも無料で使えてソコソコ使えるのに、全然使われてない可哀想な子のGoogle Apps Scriptの入門向けの勉強会をしました。
参加者は、ほぼエンジニアの方でJavaだったりPHPだったりで、若干名がJS使いでした。全員がGmailかApps(not for Business)使用者でした。しかし、15名程の参加者中GAS経験者は3名でほぼ初めてのGASという感じでした。名前は知っているし興味もあるけどまだ触れていない。そんな感じ

募集当初は全然参加希望居なかったですが、ジワジワ増えてキャンセル待ちになったのですが、会場提供いただいたCreativeHopeさんに椅子やテーブルなど増やしてもらって参加希望全員の方来てもらえるようになりました、ありがとうございます。>CreativeHopeさん

当日使った資料をアプしました。デモでは、Sites連携などもしたかったのですが、何故か昨日は調子が悪く動かなかったのでスプレッドシートにとじたdemoを行いました。サンプルアプリの発表を@ikikkoさんにお願いしたのですが、Twitterからデータ取得したり、BackLogにデータ登録したりするdemoは素晴らしかったです。

GASは、コマンド一つ一つは小粒でいきなり便利になるコマンドは少ないですが他のサービスとの組み合わせやアイデア1つで一気に活用度合いが増えます。
おもしろ便利Tips見つけたらどんどんアップしていこうと思います。興味ある方は、LingrにGAS部屋あるのでご参加下さい。 http://lingr.com/signup?letmein=GAS_ja

//---  消費税計算 -----------------------------------------------------------------------------------------
function inctax(pay){
  var res = pay * 1.05
  return res
  }

function extax(pay){
  var res = pay / 1.05;
   return res
}

function onlytax(pay){
  var res = pay * 0.05
  return res
  }

// 選択セルの取得
function get_sell_data() {
  var value = SpreadsheetApp.getActiveRange().getValues();
  if (value != null){
    Browser.msgBox(value);
  }
}  
    
     
     
// インプットボックスからのデータ入力
function set_cell_data() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var get_val = Browser.inputBox("数字を入力してください"); 
  sheet.getRange("A1").setValue("Number entered:");
  var b1Range = sheet.getRange("B1");
  b1Range.setValue(get_val.getCell().getValue());
  var valueToShow = b1Range.getValue() + 1;
  Browser.msgBox("入力された数字+1は: " + valueToShow);
}  
     
// メニューバー追加-----------------------------------------------------------------
function addMenuBar(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var menuEntries = [ {name: "Hello", functionName: "menuFunc1"},
                      {name: "SS Name", functionName: "menuFunc2"},
                      {name: "SS ID", functionName: "menuFunc3"},
                      {name: "set cell", functionName: "set_cell_data"},
                      {name: "get cell", functionName: "get_cell_data"}
                     ];
  ss.addMenu("カスタム", menuEntries);
}

function menuFunc1(){
  Browser.msgBox("Hello world");
}

function menuFunc2(){
  var title = SpreadsheetApp.getActiveSpreadsheet().getName();
  Browser.msgBox(title);
}

function menuFunc3(){
  var id = SpreadsheetApp.getActiveSpreadsheet().getId();
  Browser.msgBox(id);
}


function onOpen() {
  addMenuBar()
}

//---  カレンダータイトル取得 -----------------------------------------------------------------------------------------

function get_calTitle() {
  var cal = CalendarApp.getAllOwnedCalendars();
  var cal_name = cal[0].getName();
  //Browser.msgBox(cal_name);
  var btn = Button.setText('this is button');
  Browser.msgBox(btn);
}

//--- カレンダーにイベント追加 -----------------------------------------------------------------------------------------
function addEventToCal(){
  // 0番目のカレンダーの取得
  var cal = CalendarApp.getAllOwnedCalendars();
  var cal_name = cal[0].getName();
  Browser.msgBox(cal_name);

  // カレンダーのタイムゾーンの取得
  var tz_name = cal[0].getTimeZone();
  Browser.msgBox(tz_name);  
  
  var one_cal = CalendarApp.getCalendarById(cal_name);
  Browser.msgBox(one_cal);
  //cal.createEvent("Busy", new Date("2010 08:00:00 JS"), new Date("July 21, 2010 09:00:00 JST"), {location:'Nap room'});
}



//--- Sitesにページ追加 -----------------------------------------------------------------------------------------
SITE_URL = "https://sites.google.com/site/a2cgas/";

function newSite(ins_data){
  var site = SitesApp.getSite('sites.google.com', 'a2c_gas');
  var parentPage = site.getChildByName(TOPNAME + '/' + 'test page');
  
  var add_pagename = '123456';
  var webTitle = 'テスト用のタイトル';
  
  var webPageBody = webPageTemplate();
  var webPage = site.createWebPage(webTitle, add_pagename, webPageBody);
  
  webPage.setParent(parentPage);
}

function getSite(siteInfo){
 return site_data 
}​

## その他情報