GAS実行アプリ

appsheetも所謂ノーコードアプリなため機能も限定的になります。

あともう少しこれができたらいいなぁ。

 

もし、もう少しがGAS(google apps script)で実現できる機能であれば、

こういったappsheetの構成はいかがでしょうか。

 

・概要

 ①GAS実行フラグ判定用のシートを作成

 ②appsheetのBehaviorで実行フラグのcolomunを "1" に変更するBehaviorを作成

 ③appsheetのAutomationで実行フラグを条件にGASを実行

 ④呼び出したGASの処理の最後に実行フラグをリセット

 

邪道と言われるとは思いますが、なんだかんだUIを自動生成してくれるappsheet

個人的にはそれだけでもかなり優秀なツール。

一方で、この形式によるGASの実行はもう少しを解決する1つの手段だと思います。

 

〇 フラグ判定用のシートの作成

 各columunの説明

 [GAS] ただの名称。appsheetのUI上の表示用

 [flg] Automationの判定。デフォルトは0。1に変更時にフラグ判定

 [Row] flgリセットのGASの簡略化のため。リセットする行の引数

 

〇 Behaviorの設定

 Behaviorの名前はなんでもOK

 Do thisで画像のものを選択し、set the valuesとして

 実行時に[flg]に【1】を入力するルールにする。

 

〇 Automationの設定

 Automationのeventは、

 All changes とし、 Conditionを [flg] = "1"とする。

 

 processは、

 call a script とし、 対象となるGASを選択します。

 今回のサンプルではGASが実行できます、というものなので1つのGASを

 実行する形となっています。

 本来であれば、[Row]を引数としているので、呼び出すGASの最初の処理で

 Rowの値により呼び出す関数を設定することで複数のGASを実行することができます。

 

 ※GASを実行し、flgのリセットまでのGASの事例 

function myFunction(rowSet) {
  
  //ここのRow(rowSet)の値で分岐を入れ、実行するGASを分岐
  //if(rowSet == "2") {
  //  Function1;
  //} else if(rowSet == "3") {
  //  Function2;
  //}

  const ss = SpreadsheetApp.openById('appsheetのスプレッドシートのID');
  const sheet = ss.getSheetByName('シート名');
  
  //flgのcolumnの値を 1 ⇒ 0 に戻す
  sheet.getRange(rowSet3).setValue('0');

}

もし興味があれば試してみてくださいね!