回答編集履歴
19
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
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
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
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
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。(変更後のシート名がすでに存在している場合は連番を振ります)
|
21
21
|
(スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
|
22
22
|
```js
|
23
|
-
function changeSheetNames
|
23
|
+
function changeSheetNamesToFormTitles(){
|
24
24
|
const sheets = SpreadsheetApp.getActive().getSheets();
|
25
25
|
const sheetNames = sheets.map(e => e.getName());
|
26
26
|
|
14
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
---
|
8
8
|
|
9
|
-
タイトルと質問文の前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくい
|
9
|
+
タイトルと質問文の前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくい」という趣旨だと推測します。
|
10
10
|
|
11
11
|
したがって下記以降は、それに対する解決策を2つ記載します。
|
12
12
|
|
13
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
> フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
|
2
2
|
まず、質問文の最後に記載されている「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」は、存在しません。
|
3
3
|
|
4
|
-
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
|
4
|
+
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。(これは初回に限ります。一回紐づけた後はスプレッドシート側でシート名を変更するしかないです)
|
5
5
|

|
6
6
|
|
7
7
|
---
|
12
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
> フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
|
2
|
-
まず、質問文の最後に記載されている
|
2
|
+
まず、質問文の最後に記載されている「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」は、存在しません。
|
3
3
|
|
4
4
|
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
|
5
5
|

|
@@ -13,6 +13,7 @@
|
|
13
13
|
①「当該シートがどのフォームの回答を集約しているか」を、**スプレッドシートから調べる**には、
|
14
14
|
スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します。
|
15
15
|
あとはフォームの内容を見て、シート名を直接、手動で変えればよいでしょう。
|
16
|
+

|
16
17
|
|
17
18
|
---
|
18
19
|
|
11
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
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
---
|
18
18
|
|
19
|
-
②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。
|
19
|
+
②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。(変更後のシート名がすでに存在している場合は連番を振ります)
|
20
20
|
(スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
|
21
21
|
```js
|
22
22
|
function changeSheetNamesByFormTitles(){
|
9
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
---
|
18
18
|
|
19
|
-
②下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトルに変更するスクリプトの例です。
|
19
|
+
②下記は、スプレッドシートの各シート名を、「紐づいているフォームのタイトル + "の回答"」に変更するスクリプトの例です。
|
20
20
|
(スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
|
21
21
|
```js
|
22
22
|
function changeSheetNamesByFormTitles(){
|
8
test
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
> フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
|
2
|
-
まず、質問文に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
|
2
|
+
まず、質問文の最後に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
|
3
3
|
|
4
4
|
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
|
5
5
|

|
6
6
|
|
7
7
|
---
|
8
8
|
|
9
|
-
質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
|
9
|
+
タイトルと質問文の前半から、この質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
|
10
10
|
|
11
11
|
したがって下記以降は、それに対する解決策を2つ記載します。
|
12
12
|
|
7
test
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
したがって下記以降は、それに対する解決策を2つ記載します。
|
12
12
|
|
13
|
-
①「どのフォームの回答を集約しているか」を、**スプレッドシート
|
13
|
+
①「当該シートがどのフォームの回答を集約しているか」を、**スプレッドシートから調べる**には、
|
14
14
|
スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択します。
|
15
15
|
あとはフォームの内容を見て、シート名を直接、手動で変えればよいでしょう。
|
16
16
|
|
6
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
---
|
8
8
|
|
9
|
-
質問の本質は「すでに回答を蓄積するシートを作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
|
9
|
+
質問の本質は「すでに回答を蓄積するシートを複数作ってしまっているが、どれも似たような名前になっていて、どのフォームの回答を集約しているかわかりにくいので困っている」という趣旨だと推測します。
|
10
10
|
|
11
11
|
したがって下記以降は、それに対する解決策を2つ記載します。
|
12
12
|
|
5
test
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
> フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
|
2
|
-
まず、質問文に記載されているような、**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定は、存在しません。
|
2
|
+
まず、質問文に記載されているような、「**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定」などは、存在しません。
|
3
3
|
|
4
4
|
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
|
5
5
|

|
4
test
CHANGED
@@ -1,17 +1,22 @@
|
|
1
1
|
> フォームとシートをリンクさせた時点で、タブ名がフォーム名になるようにするには、どうすれば良いでしょうか?
|
2
|
-
まず、フォームとシートの初回リンク時
|
2
|
+
まず、質問文に記載されているような、**フォームとシートの初回リンク時**に自動的にタブ名をフォーム名にするような設定は、存在しません。
|
3
3
|
|
4
4
|
下の図のように、フォーム編集画面で初めてスプレッドシートを紐付ける際、**シート名を手入力で変更できるようになっている**ので、その時点で気を付けてわかりやすい名前を上書き入力するしかないです。
|
5
5
|

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

|
6
6
|
|
7
7
|
---
|
8
|
-
すでにシートを作ってしまっている場合は、その
|
8
|
+
すでに回答を蓄積するシートを作ってしまっている場合は、スプレッドシート側でそのシート名を変更する必要があります。
|
9
9
|
「そのシートがどのフォームの回答を集約しているか」を、**スプレッドシート側から調べる**には、下記のようにします。
|
10
10
|
・スプレッドシートのメニューから「ツール」→「フォームを管理」→「フォームを編集」を選択。
|
11
11
|
|
1
test
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
---
|
13
13
|
|
14
|
-
下記は、スプレッドシートの
|
14
|
+
下記は、スプレッドシートの各シート名を、紐づいているフォームのタイトルに変更するスクリプトの例です。
|
15
15
|
(スプレッドシートのコンテナバインドスクリプトとして記述・実行してください)
|
16
16
|
```js
|
17
17
|
function changeSheetNamesByFormTitles(){
|