
GAS初心者です。業務上以下のことをしたいと思っています。
他社のgoogleフォームで送信したスプレッドシート内容を自社のスプレッドシートに転記したい。
ただし自社のスプレッドシートは他社には見せたくないため、自社のIDや権限付与はしたくないので、他社のスプシ(A)から自社のスプシ(B)の間にスプシ(C)(ID・権限付与する)を介して転記したいと思っています。
A→Cは自動転記できたのですが、C→Aがうまくいきません。
A→Cに自動転記されたのをトリガー「変更」の設定でC→Bとしたかったのですが、自動転記したものは「変更」が認識されずトリガーとして設定できないようです。
そこで、C→Bには、Cのデータ全ての日時を検索してBの同じ日時のもの(すでに転記したものは)は転記させず、まだ転記していないものをすべて転記するという設定にして、指定時間AM9:00になったら実行するトリガーを設定したいです。
色々調べて似たものを探し(同じくこの質問コーナーにて質問されていたものを借用しました。リンクはこちらです。https://teratail.com/questions/218191)
同じシート上に転記させる設定のものがあ以下のようににアレンジしましたがうまくいきません。
どのように修正すればいいでしょうか。
また、毎日9:00に自動実行させる設定もお願いしたいです。どうかお力を貸してください!
function myFunction11() {
var SS_CopyFrom =SpreadsheetApp.openById("転記元シートID");
var Sheet_CopyFrom = SS_CopyFrom.getSheetByName('フォームの回答');
var LrFrom = Sheet_CopyFrom.getLastRow();
var LcFrom = Sheet_CopyFrom.getLastColumn();
var ValuesFrom = Sheet_CopyFrom.getRange(1, 1,LrFrom,LcFrom).getValues();
var CountFrom = ValuesFrom.length;
var BoxFrom = ""
var Box2From = ""
var resFrom = ""
var SS_CopyTo =SpreadsheetApp.openById("転記先シートID");
var Sheet_CopyTo = SS_CopyTo.getSheetByName('フォームの回答 1');
var LrTo = Sheet_CopyFrom.getLastRow();
var LcTo = Sheet_CopyFrom.getLastColumn();
var ValuesTo = Sheet_CopyTo.getRange(1,6,LrTo,LcTo).getValues();//転記先のG列を取得
var CountTo = ValuesTo.length;
var resTo = ""
for( var i = 0; i < CountFrom; i++ ) {
var found = false;
for( var j = 0; j < CountTo; j++ ) {
if( ValuesFrom[i][0] === ValuesTo[j][6]) {
found = true;
break;
}
}
if( !found )
resTo += ValuesFrom[i];
}
Browser.msgBox(resTo);
}


回答2件
あなたの回答
tips
プレビュー