回答編集履歴

3

 

2022/05/02 23:24

投稿

退会済みユーザー
test CHANGED
@@ -3,7 +3,7 @@
3
3
  → [公式によって修正され、getTitle()が正常に動作するようになりました](https://issuetracker.google.com/issues/72151985#comment9)
4
4
 
5
5
  FormApp#getTitle()を使用したコードについては
6
- https://teratail.com/questions/kros5rm95gnx42
6
+ https://teratail.com/questions/kros5rm95gnx42#reply-2hqbt0gt18ne2m
7
7
  を参照してください。
8
8
 
9
9
 

2

修正追記

2022/05/02 23:22

投稿

退会済みユーザー
test CHANGED
@@ -1,63 +1,44 @@
1
- Form.getTitle() は現時点ではnullを返し有効に機能しません。
1
+ ~~Form.getTitle() は現時点ではnullを返し有効に機能しません。
2
+ ([Issue trackerより](https://issuetracker.google.com/issues/36762862))~~
3
+ → [公式によって修正され、getTitle()が正常に動作するようになりました](https://issuetracker.google.com/issues/72151985#comment9)
2
4
 
5
+ FormApp#getTitle()を使用したコードについては
3
- ([Issue trackerより](https://issuetracker.google.com/issues/36762862))
6
+ https://teratail.com/questions/kros5rm95gnx42
7
+ を参照してください。
4
8
 
5
9
 
10
+ 下記はgetTitle()のバグ修正前の対応方法として残しておきます。
6
11
 
12
+ ---
13
+
7
- したがって DriveApp と Form.getId()で代用します。
14
+ DriveApp と Form.getId()で代用します。
15
+  
16
+
17
+ 1.各フォームについて、フォームのスクリプトで下記を記述します。
18
+ (スプレッドシートのスクリプトではありません。各フォーム編集画面の右上の縦に並んだ3点マークから「<>スクリプトエディタ」を選択してください)
8
19
 
9
20
   
10
-
21
+ ```
11
-
22
+ function onFormSubmit(e) {
12
-
13
- 1.各フォームについて、フォームのスクリプトで下記を記述します。
23
+ //FormApp.getActiveForm();
14
-
24
+ const ssid = e.source.getDestinationId();
15
- (スプレッドシートのスクリプトではありません。各フォーム編集画面の右上の縦に並んだ3点マークから「<>スクリプトエディタ」を選択してください)
25
+ const title = DriveApp.getFileById(e.source.getId()).getName()
16
-
26
+ SpreadsheetApp.openById(ssid).getActiveSheet().setName(title)
17
-
27
+ }
18
-
19
-  
20
28
 
21
29
  ```
22
30
 
23
- function onFormSubmit(e) {
24
-
25
- //FormApp.getActiveForm();
26
-
27
- const ssid = e.source.getDestinationId();
28
-
29
- const title = DriveApp.getFileById(e.source.getId()).getName()
30
-
31
- SpreadsheetApp.openById(ssid).getActiveSheet().setName(title)
32
-
33
- }
34
-
35
-
36
-
37
- ```
38
31
 
39
32
  ※( //FormApp.getActiveForm();のコメントは外しても外さなくてもよいです。権限承認のために必要)
40
33
 
41
-
42
-
43
34
   
44
-
45
35
  2.トリガーでonFormSubmit関数を、フォーム送信時に実行するように設定します。
46
-
47
-
48
36
 
49
37
  3.スクリプトエディタ上で上記コードを1度実行し、必要な権限を承認します。
50
38
 
51
-
52
-
53
39
  4.あとは各フォームから(最低1回)回答すれば、フォームタイトルがシート名に変わると思います。
54
-
55
-
56
40
 
57
41
  ※各フォームタイトルの名前は必ず異なる名前であることを確認してください。同じフォームタイトルから回答すると、同じシート名に変えようとするためエラーになりタイトルは変わりません。
58
42
 
59
-
60
-
61
43
  ・DriveAppには使用回数制限があるため、他のスクリプトでDriveAppを使っている場合は、タイトルを変えたフォームフォームのトリガーは順次削除した方がよいかもしれません。
62
-
63
44
  (そうしないと回答がある度にトリガーが呼ばれDriveAppの使用回数を消費することになるため)

1

修正

2021/10/23 01:18

投稿

退会済みユーザー
test CHANGED
@@ -24,11 +24,11 @@
24
24
 
25
25
  //FormApp.getActiveForm();
26
26
 
27
- ssid = e.source.getDestinationId();
27
+ const ssid = e.source.getDestinationId();
28
28
 
29
- var title = DriveApp.getFileById(e.source.getId()).getName()
29
+ const title = DriveApp.getFileById(e.source.getId()).getName()
30
30
 
31
- sh = SpreadsheetApp.openById(ssid).getActiveSheet().setName(title)
31
+ SpreadsheetApp.openById(ssid).getActiveSheet().setName(title)
32
32
 
33
33
  }
34
34