回答編集履歴

1

a

2020/12/18 08:12

投稿

papinianus
papinianus

スコア12705

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