teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

a

2020/12/18 08:12

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -1,8 +1,16 @@
1
+ ```javascript
2
+ const q309630_onOpen = (e) => {
3
+ const formSheetName = "シート1";
4
+ const targetColumnName = "対応状況";
5
+ const formSheet = SpreadsheetApp.getActive().getSheetByName(formSheetName);
1
- やりかたはありそうにも思いますが、最低でもそれぞれのユーザーがスクリプトの実行を許可する必要があります。
6
+ const dat = formSheet.getDataRange().getValues();
7
+ const targetColumn = dat[0].reduce((a,c,i) => c === targetColumnName ? i : a,-1);
2
- GSuiteを持ってないので、実際できるか確認は難しいです。
8
+ if(targetColumn === -1) return;
9
+ const userEmail = e.user.getEmail();
10
+ formSheet.getRange(dat.length, targetColumn, 1, 1).setValue(userEmail);
11
+ }
12
+ ```
3
13
 
4
- 質問の感じからすると、共有相手は編集しなくてよいのかなと考えました。これが正しいとしたら私だったら web アプションして公開にして、リクが開かれたときに確認済を書き込みすね
5
-
6
- 開いたかを特定する必要があるのでょうか
7
- また、どのようなデータのどこに確認済と入れるか、も不明です。
8
- このあたりを書くと他に有効な回答が得られるかもです。
14
+ - onOpen をト設定する動作するっぽいのでプルを書きました
15
+ が、最終行の「対応状況」が空かを判定してない(というか仕様が分からないので判定すべきかも分からない)ですし、そもそも最終行に入れるべきかも分からない(例えばチェックするまでに 2 つ以上の回答が来た状況でどうするのか)ですし、開いたときに"フォームの回答"シートが開かれているかも確認してないですし(確認して弾くことはできますが、一旦弾いてしまうともう二度と onOpen は発火しないので)、はっきり言って使いものにならないでしょうね。
16
+ 仕様はっきりたら別質問立ててください