Closed15

Google Apps Script GASを学ぶ

ame Nagakuraame Nagakura

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

ame Nagakuraame Nagakura

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

ame Nagakuraame Nagakura

行を指定する場合の指定

getRange(row, column, numRows);
引数には下記の値を指定します。

引数 説明
row 範囲の開始行を整数で指定する。最小値は1。
column 範囲の開始列を整数で指定する。最小値は1。
numRows 範囲の最終行を整数で指定する。

ame Nagakuraame Nagakura

単一セルじゃなくて、セルの範囲指定は:でよかった。
エクセルと一緒 例(A1:A100)
複数取得したい時はrange.getValues() に変える

function myFunction() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet(); //紐づいているシートの情報を取得
  const range = sheet.getRange('シート1!D1:D51'); //取得する範囲を指定
  const value = range.getValues(); // セルの値を取得
  console.log(value);
  
}
ame Nagakuraame Nagakura

GASの良いところ
外部サービスとの連携が出来る。
簡単に始められる
開発環境が不要
PCの電源が落ちていてもプログラムの定期実行が出来る

出来ないこと
Microsoftとの連携
6分以上の処理は強制終了

ame Nagakuraame Nagakura

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);          // 乱数値を抜き出してを記録
}
ame Nagakuraame Nagakura

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

ame Nagakuraame Nagakura

良く忘れるけど、迷うところ。初歩だから記事で記載が飛ばされやすい、スプレッドシートのシートIDの場所

シートIDはスプレッドシートのリンクから取得できる。
https://docs.google.com/spreadsheets/d/[シートID]/edit

このスクラップは2023/07/18にクローズされました