GAS:個人的によくつかう処理のチートシート

1 min read読了の目安(約1600字

全般

メッセージボックス

Browser.msgBox(Variable)

停止(ms)

Utilities.sleep(1500)

スプレッドシート操作

メソッド省略

var sheet = SpreadsheetApp.getActiveSheet();

セルからデータ取得

// R1C1 
var Variable1 = sheet.getRange(1,1).getValue()

// A1
var Variable2 = sheet.getRange("A1").getValue()

API

Web APIの実行

const options = {
    "method" : "get",
    "contentType": "application/x-www-form-urlencoded",
    "payload" : { 
      "token": slack_app_token,
      "cursor": cursor,
      "limit":limit
    }
  };
const urlParameter = '' //URL
let response = UrlFetchApp.fetch(urlParameter)
//Jsonをパース
let json = JSON.parse(response.getContentText())

※返ってくるデータ,Json内の作法に合わせて処理を変更する必要がある

Slackに投稿

// プロジェクトプロパティにてPOST_CHANNELとトークンを設定する必要がある

function postSlack(message,webhook) {
  var webhook = ""//WebhookURL
  var message ="test"

  var jsonData = {
    "channel" : POST_CHANNEL,//投稿先チャンネル
    "text" : message //投稿内容
  };
  var payload = JSON.stringify(jsonData);
  var options = {
    "method" : "post",
    "contentType" : "application/json",
    "payload" : payload
  };
  
  //通知処理
  UrlFetchApp.fetch(webhook, options);
  
}

その他:スプレッドシート関数

当月初日
=text(date(Year(today()),month(today()),1),"YYYY-MM-DD")

当月末日
=text(DATE(Year(today()),month(today())+1,1)-1,"YYYY-MM-DD")

範囲を集計
=QUERY(Append!A2:H," select B, sum(H), count(C) where A >= date '"&
text(DATE(Year(today()),month(today()),1),"YYYY-MM-DD")&
"'And A <= date '"&text(DATE(Year(today()),month(today())+1,1)-1,"YYYY-MM-DD")
&"' group by B label B 'ユーザ名', sum(H) '当月合計勤務時間(分)', count(C)'出勤日数' ", true)