回答編集履歴

19

 

2022/05/08 09:33

投稿

退会済みユーザー
test CHANGED
@@ -25,11 +25,11 @@
25
25
  const sheetNames = sheets.map(e => e.getName());
26
26
 
27
27
  sheets.forEach(sheet => {
28
- const oldSheetName = sheet.getName();
29
28
  const url = sheet.getFormUrl();
30
29
  if (url == null) return;
31
30
  const formTitle = FormApp.openByUrl(url).getTitle();
32
31
  const tempSheetName = formTitle + 'の回答';
32
+ const oldSheetName = sheet.getName();
33
33
  // スプレッドシート中に変更候補のシート名と同名のシートがないかを調べ、
34
34
  // 存在する場合はシート名末尾に連番を付加する。
35
35
  // ただし、これだけだとすでに連番がついているシートの連番がインクリメントされてしまう。

18

  

2022/05/08 02:17

投稿

退会済みユーザー
test CHANGED
@@ -30,13 +30,13 @@
30
30
  if (url == null) return;
31
31
  const formTitle = FormApp.openByUrl(url).getTitle();
32
32
  const tempSheetName = formTitle + 'の回答';
33
- // スプレッドシート中に、すでにあるシートと同のシートを
33
+ // スプレッドシート中に変更候補のシートと同名のシートがないか調べ、
34
- // 作成しようとするとエラーになるため、同名のシートがないかを調べ、
35
34
  // 存在する場合はシート名末尾に連番を付加する。
36
- // ただし、すでに連番がついているシートの場合は、その連番を更新する
35
+ // ただし、これだけだとすでに連番がついているシートの連番がインクリメントされてしまう。
37
- // 必要はない。そこで現在のシート名から連番を除去した文字列をフォー
36
+ // そこで現在のシート名から連番を除去した文字列を
38
- // ムタイトルから生成したシート名候補と比較し、一致する場合は、すでに
37
+ // フォームタイトルから生成したシート名候補と比較し、
38
+ // 一致する場合は、すでにシート名がフォームタイトル
39
- // シート名がフォームタイトルに合わせて変更済みであるとみなし、処理を抜ける。
39
+ // に合わせて変更済みであるとみなし、処理を抜ける。
40
40
  if (tempSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
41
41
  let newSheetName = tempSheetName;
42
42
  let i = 1;

17

 

2022/04/29 05:19

投稿

退会済みユーザー
test CHANGED
@@ -34,9 +34,9 @@
34
34
  // 作成しようとするとエラーになるため、同名のシートがないかを調べ、
35
35
  // 存在する場合はシート名末尾に連番を付加する。
36
36
  // ただし、すでに連番がついているシートの場合は、その連番を更新する
37
- // 必要はない。そこで現在のシート名から連番を除去した文字列フォー
37
+ // 必要はない。そこで現在のシート名から連番を除去した文字列フォー
38
- // ムタイルから生成したシート名候補と比較し、一致する場合はすでに
38
+ // ムタイルから生成したシート名候補と比較し、一致する場合はすでに
39
- // シート名フォームタイトルに合わせて変更済みとみなし処理を抜ける。
39
+ // シート名フォームタイトルに合わせて変更済みであるとみなし処理を抜ける。
40
40
  if (tempSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
41
41
  let newSheetName = tempSheetName;
42
42
  let i = 1;

16

 

2022/04/29 05:18

投稿

退会済みユーザー
test CHANGED
@@ -30,8 +30,15 @@
30
30
  if (url == null) return;
31
31
  const formTitle = FormApp.openByUrl(url).getTitle();
32
32
  const tempSheetName = formTitle + 'の回答';
33
+ // スプレッドシート中に、すでにあるシートと同じ名前のシートを
34
+ // 作成しようとするとエラーになるため、同名のシートがないかを調べ、
35
+ // 存在する場合はシート名末尾に連番を付加する。
36
+ // ただし、すでに連番がついているシートの場合は、その連番を更新する
37
+ // 必要はない。そこで現在のシート名から連番を除去した文字列でフォー
38
+ // トムタイルから生成したシート名候補と比較し、一致する場合はすでに
39
+ // シート名をフォームタイトルに合わせて変更済みとみなして処理を抜ける。
40
+ if (tempSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
33
41
  let newSheetName = tempSheetName;
34
- if (newSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
35
42
  let i = 1;
36
43
  while (sheetNames.includes(newSheetName)) {
37
44
  newSheetName = tempSheetName + `(${i})`;

15

 

2022/04/29 00:37

投稿

退会済みユーザー
test CHANGED
@@ -20,7 +20,7 @@
20
20
  ②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。(変更後のシート名がすでに存在している場合は連番を振ります)
21
21
  (スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
22
22
  ```js
23
- function changeSheetNamesByFormTitles(){
23
+ function changeSheetNamesToFormTitles(){
24
24
  const sheets = SpreadsheetApp.getActive().getSheets();
25
25
  const sheetNames = sheets.map(e => e.getName());
26
26
 

14

 

2022/04/29 00:35

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ---
8
8
   
9
- タイトルと質問文の前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
9
+ タイトルと質問文の前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくい」という趣旨だと推測します。
10
10
   
11
11
  したがって下記以降は、それに対する解決策を2つ記載します。
12
12
   

13

 

2022/04/29 00:35

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,7 @@
1
1
  > フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
2
2
  まず、質問文の最後に記載されている「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」は、存在しません。
3
3
 
4
- 下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
4
+ 下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。(これは初回に限ります。一回紐づけた後はスプレッドシート側でシート名を変更するしかないです)
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)
6
6
 
7
7
  ---

12

 

2022/04/29 00:33

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  > フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
2
- まず、質問文の最後に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
2
+ まず、質問文の最後に記載されている「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」は、存在しません。
3
3
 
4
4
  下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)
@@ -13,6 +13,7 @@
13
13
  ①「当該シートがどのフォームの回答を集約しているか」を、**スプレッドシートから調べる**には、
14
14
  スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します。
15
15
  あとはフォームの内容を見て、シート名を直接、手動で変えればよいでしょう。
16
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/8d293cbd-7d11-4222-b56f-a87c524ba035.png)
16
17
 
17
18
  ---
18
19
 

11

 

2022/04/28 19:57

投稿

退会済みユーザー
test CHANGED
@@ -30,8 +30,8 @@
30
30
  const formTitle = FormApp.openByUrl(url).getTitle();
31
31
  const tempSheetName = formTitle + 'の回答';
32
32
  let newSheetName = tempSheetName;
33
+ if (newSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
33
34
  let i = 1;
34
- if (newSheetName === oldSheetName.replace(/\(\d+\)/,'')) return;
35
35
  while (sheetNames.includes(newSheetName)) {
36
36
  newSheetName = tempSheetName + `(${i})`;
37
37
  i++;

10

 

2022/04/28 19:53

投稿

退会済みユーザー
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ---
18
18
 
19
- ②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。
19
+ ②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。(変更後のシート名がすでに存在している場合は連番を振ります)
20
20
  (スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
21
21
  ```js
22
22
  function changeSheetNamesByFormTitles(){

9

 

2022/04/28 19:52

投稿

退会済みユーザー
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  ---
18
18
 
19
- ②下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトルに変更するスクリプトの例です。
19
+ ②下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。
20
20
  (スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
21
21
  ```js
22
22
  function changeSheetNamesByFormTitles(){

8

 

2022/04/28 19:48

投稿

退会済みユーザー
test CHANGED
@@ -1,12 +1,12 @@
1
1
  > フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
2
- まず、質問文に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
2
+ まず、質問文の最後に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
3
3
 
4
4
  下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)
6
6
 
7
7
  ---
8
8
   
9
- 質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
9
+ タイトルと質問前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
10
10
   
11
11
  したがって下記以降は、それに対する解決策を2つ記載します。
12
12
   

7

 

2022/04/28 19:46

投稿

退会済みユーザー
test CHANGED
@@ -10,7 +10,7 @@
10
10
   
11
11
  したがって下記以降は、それに対する解決策を2つ記載します。
12
12
   
13
- ①「どのフォームの回答を集約しているか」を、**スプレッドシートから調べる**には、
13
+ ①「当該シートがどのフォームの回答を集約しているか」を、**スプレッドシートから調べる**には、
14
14
  スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します。
15
15
  あとはフォームの内容を見て、シート名を直接、手動で変えればよいでしょう。
16
16
 

6

 

2022/04/28 19:46

投稿

退会済みユーザー
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ---
8
8
   
9
- 質問の本質は「すでに回答を蓄積するシートを作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
9
+ 質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
10
10
   
11
11
  したがって下記以降は、それに対する解決策を2つ記載します。
12
12
   

5

 

2022/04/28 19:45

投稿

退会済みユーザー
test CHANGED
@@ -1,5 +1,5 @@
1
1
  > フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
2
- まず、質問文に記載されているような、**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定は、存在しません。
2
+ まず、質問文に記載されているような、**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
3
3
 
4
4
  下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)

4

 

2022/04/28 19:45

投稿

退会済みユーザー
test CHANGED
@@ -1,17 +1,22 @@
1
1
  > フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
2
- まず、フォームとシートの初回リンク時**自動的に**タブ名をフォーム名にするような設定は、存在しません。
2
+ まず、質問文に記載されているような、**フォームとシートの初回リンク時**自動的にタブ名をフォーム名にするような設定は、存在しません。
3
3
 
4
4
  下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)
6
6
 
7
7
  ---
8
+  
8
- すでに回答を蓄積するシートを作ってしまっている場合はスプレッドシト側でそシート名変更す必要があります。
9
+ 質問の本質は「すでに回答を蓄積するシートを作ってしまっているどれも似たような名前になっていて、どのフォ回答集約していかわかにくいので困っている」という趣旨だと推測します。
10
+  
11
+ したがって下記以降は、それに対する解決策を2つ記載します。
12
+  
9
- 「どのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、
13
+ 「どのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、
10
14
  スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します。
15
+ あとはフォームの内容を見て、シート名を直接、手動で変えればよいでしょう。
11
16
 
12
17
  ---
13
18
 
14
- 下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトルに変更するスクリプトの例です。
19
+ 下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトルに変更するスクリプトの例です。
15
20
  (スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
16
21
  ```js
17
22
  function changeSheetNamesByFormTitles(){

3

 

2022/04/28 19:37

投稿

退会済みユーザー
test CHANGED
@@ -6,8 +6,8 @@
6
6
 
7
7
  ---
8
8
  すでに回答を蓄積するシートを作ってしまっている場合は、スプレッドシート側でそのシート名を変更する必要があります。
9
- そのシートがどのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、下記のようにします。
9
+ 「どのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、
10
- スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択。
10
+ スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します
11
11
 
12
12
  ---
13
13
 

2

 

2022/04/28 19:36

投稿

退会済みユーザー
test CHANGED
@@ -5,7 +5,7 @@
5
5
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-04-29/16c59595-019c-45a3-ba35-4b0aaa82f418.png)
6
6
 
7
7
  ---
8
- すでにシートを作ってしまっている場合は、そのタブ名を変更する必要があります。
8
+ すでに回答を蓄積するシートを作ってしまっている場合は、スプレッドシート側でそのシート名を変更する必要があります。
9
9
  「そのシートがどのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、下記のようにします。
10
10
  ・スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択。
11
11
 

1

 

2022/04/28 19:35

投稿

退会済みユーザー
test CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  ---
13
13
 
14
- 下記は、スプレッドシートのタブフォームのタイトルに変更するスクリプトの例です。
14
+ 下記は、スプレッドシートの各シート名、紐づいているフォームのタイトルに変更するスクリプトの例です。
15
15
  (スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
16
16
  ```js
17
17
  function changeSheetNamesByFormTitles(){