0

次のチュートリアルに従いました: https ://developers.google.com/apps-script/storing_data_spreadsheets#writing-1 。

まず、次の列(名、姓、部門)と関連データを含むソーススプレッドシートがあります(ソースファイルのスクリーンショットはこちらをご覧ください:https ://developers.google.com/apps-script/images/reading_spreadsheet_data_image1 .jpg)。

次に、部門名ごとに1つのシートを動的に作成します(チュートリアルコードを参照)。すべてのシートには、その部門の従業員に関する情報が含まれています。(チュートリアルのスクリーンショットを参照)。

このチュートリアルをカスタマイズして、部門ごとに1枚のシートではなく、部門ごとに1枚のスプレッドシートを動的に作成しました。

各子スプレッドシートが変更されたら、「編集時」トリガーを起動したいと思います。この「編集時」トリガーは、すべての子spreasheetsデータを含むソーススプレッドシートを再生成します。

この機能をテストしましたが、離れたスプレッドシートで「OnEdit」トリガーの作成をプログラムできないようです(実行検証の問題)。(「編集時」トリガーの)手動作成のみが可能であるようです。

遠くのスプレッドシートにトリガーをGoogleScriptで動的に作成することは可能ですか?

よろしくお願いします

4

1 に答える 1

0

リモート スプレッドシートまたはフォームからのイベントを処理するトリガー関数を作成できます。クラス Triggerbuilderを参照してください。

トリガー関数は、トリガーを作成するスクリプトからアクセスできる必要があります。つまり、同じスクリプトの一部である必要があります。

var ssKey = 'XXXXXXXXXXXXXXXXXXXXX';

function myFunction() {
  ScriptApp.newTrigger('myOnEdit')
           .forSpreadsheet(ssKey)
           .onEdit()
           .create();
}

function myOnEdit(e) {
  Logger.log(JSON.stringify(e));
}

もちろん、トリガー関数で何か便利なことをしたいと思うでしょうが、これは単なる例です。

注意すべき問題があります。このリモート関数は、「イベントについて」の「スプレッドシートの編集イベント」に記載されている文書化されたプロパティを受け取りませsourceん。問題 2856を参照し、更新のためにスターを付けてください。

なぜそれが重要なのですか?それが機能する場合、すべてのスプレッドシートからのイベントを処理するために同じトリガー関数を登録し、sourceプロパティを使用して一度に 1 つのシートで作業できる可能性があります。

于 2013-06-04T21:01:53.603 に答える