

GoogleスプレッドシートにCF7 Google Sheet Connectorからデータを挿入した際に  
シート1の一番下へ追加されますけれど、それをシート3へと逆順にしたいと思いまして、  
以下のJavaScriptを書きました。

そこで、トリガーについてなのですけれど、  
イベントのソースを選択：スプレッドシートから  
イベントの種類を選択：編集時  
としますと、CF7 Google Sheet Connectorからシート1に挿入されましてもGASは  
動作しませんで、  
イベントのソースを選択：スプレッドシートから  
イベントの種類を選択：変更時  
にしますと、シート3の行幅・列幅を変更しただけでもGASが動作してしまいます。  
JavaScriptにて  
if (sheet_add.getName() == "シート1") {  
としてシート1がアクティブになったときだけGASを動かしたいのですが、シート3の  
行幅・列幅でGASが動作してしまいます理由は何でしょうか？

[code]

    // FormApp.getActiveForm()
    
    function reverse() {
    
        var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();// Container Bound Script
        var sheet_add = spreadsheet.getActiveSheet();
    
        if (sheet_add.getName() == "シート1") {
    
            // スプレッドシートを取得する
            var sheet = spreadsheet.getSheets()[0];// シート1を指定して取得
            var lastRow = sheet.getRange(sheet.getMaxRows(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
    
            var range = sheet.getRange(lastRow, 1, 1, 13);
            var currentRangeValues = range.getValues();
    
            var sheet3 = spreadsheet.getSheets()[2];// シート3を指定して取得
    
            var numRows = currentRangeValues.length;
            var numColumns = currentRangeValues[0].length;
    
            sheet3.insertRows(2,1);
            sheet3.getRange(2, 1, numRows, numColumns).setValues(currentRangeValues);
    
        }
    
    }
    
[/code]


CC BY-SA 4.0
2021-02-03T00:25:47.943
73768
2021-02-15T04:19:12.887
2021-02-03T00:42:54.393
3060
43684
question
google-apps-script
GoogleスプレッドシートにCF7から挿入した際のトリガーについての質問です。


自己解決？しました。  
結局、同じスプレッドシートの別シートへのデータコピーではトリガーが起動してしまいますので、全く別のスプレッドシートへとデータをコピーしまして、コピー先のスプレッドシート上ではコピー元のスプレッドシートのトリガー無関係ですから、その場しのぎをしています。


CC BY-SA 4.0
2021-02-15T04:19:12.887
74007
2021-02-15T04:19:12.887
43684
73768
answer