Google Apps Script GASを学ぶ

スタンドアロン型→スプレッドシート完結。 PADみたい。
コンテナバインド型→Gmailや他のスプレッドシートなどと連携する。 デスクトップじゃないPowerAutomateみたい。

ダミーデータを作るサイト 便利
ここから必要なデータをGASで抜き出してみる。

初回のみ権限確認が必要
結構しっかり聞かれてビックリする。

行を指定する場合の指定
getRange(row, column, numRows);
引数には下記の値を指定します。
引数 説明
row 範囲の開始行を整数で指定する。最小値は1。
column 範囲の開始列を整数で指定する。最小値は1。
numRows 範囲の最終行を整数で指定する。

単一セルじゃなくて、セルの範囲指定は:でよかった。
エクセルと一緒 例(A1:A100)
複数取得したい時はrange.getValues() に変える
function myFunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet(); //紐づいているシートの情報を取得
const range = sheet.getRange('シート1!D1:D51'); //取得する範囲を指定
const value = range.getValues(); // セルの値を取得
console.log(value);
}

GASでWEBサーバーを作る場合
doGet()
doPost()

GASの良いところ
外部サービスとの連携が出来る。
簡単に始められる
開発環境が不要
PCの電源が落ちていてもプログラムの定期実行が出来る
出来ないこと
Microsoftとの連携
6分以上の処理は強制終了

こちらの記事を参考にM5stackCORE2の情報をGASで記録をしてみる

UIFLOW側
GAS varが使わないように変更
function doPost(e) {
console.log('catch post');
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
const params = JSON.parse(e.postData.getDataAsString());
const status = params.status;
// データをシートに追加
sheet.insertRows(2,1);
sheet.getRange(2, 1).setValue(new Date()); // 受信日時を記録
sheet.getRange(2, 2).setValue(params); // 受信データを記録
sheet.getRange(2, 3).setValue(status); // 乱数値を抜き出してを記録
}

M5stackでAボタンを押すとランダムで①~⑥の数字(ステータス)が出てくるので、
それをGASからスプレッドシートに取得日と一緒に記録している。
色々と応用できそう。

LINEBOTをつくる
参考

良く忘れるけど、迷うところ。初歩だから記事で記載が飛ばされやすい、スプレッドシートのシートIDの場所
シートIDはスプレッドシートのリンクから取得できる。
https://docs.google.com/spreadsheets/d/[シートID]/edit