回答編集履歴

7

修正

2023/08/22 14:02

投稿

退会済みユーザー
test CHANGED
@@ -20,14 +20,22 @@
20
20
  function setSectionHeader() {
21
21
  var form = FormApp.getActiveForm();
22
22
  var items = form.getItems();
23
+ var counter = 0;
23
24
  // フォーム内の要素を全部列挙する。
24
25
  for (var i = 0; i < items.length; i++) {
25
26
  item = items[i];
26
- // タイトルと説明 (セクションヘッダ)
27
+ // アイテムのタイプが「タイトルと説明 (セクションヘッダ)の場合
27
28
  if (item.getType() == 'SECTION_HEADER') {
28
29
  var sectionHeaderItem = item.asSectionHeaderItem();
30
+ if (counter === 0){
29
- sectionHeaderItem.setTitle("ここにタイトルを入れる");;
31
+ sectionHeaderItem.setTitle("ここに1番目のタイトルを入れる");;
30
- sectionHeaderItem.setHelpText("ここに説明文を入れる")
32
+ sectionHeaderItem.setHelpText("ここに1番目の説明文を入れる")
33
+ counter++;
34
+ }
35
+ else if (counter === 1){
36
+ sectionHeaderItem.setTitle("ここに2番目のタイトルを入れる");;
37
+ sectionHeaderItem.setHelpText("ここに2番目の説明文を入れる")
38
+ }
31
39
  }
32
40
  }
33
41
  }

6

修正

2023/08/22 13:48

投稿

退会済みユーザー
test CHANGED
@@ -11,10 +11,8 @@
11
11
  ややこしいんですが、Googleフォームにおいて、タイトルと説明文を設定できるものは、実は以下の**3種類**あります。
12
12
  ・フォームの1番上にあるタイトル(時に「セクション」という名前にもなる)→これを変更するのは、修正前の上のコード。
13
13
  ・ページブレイクアイテム(任意の場所に挿入できる)
14
- ・セクションヘッダ(任意の場所に挿入できる)
14
+ ・セクションヘッダ(タイトルと説明)(任意の場所に挿入できる)=
15
15
 
16
- 「どの部分のタイトル・説明文を変えたいのか」を画像キャプチャで示していただくのが一番確実ですが、
17
- 2番目・3番目のページブレイクアイテム/セクションヘッダどちらにも対応したコードは、下記です。
18
16
 
19
17
  GASでは、アイテムを全部列挙して、そのアイテムがどのタイプかを調べたうえで、アイテムに応じた処理をする、という泥臭いやり方になります。
20
18
 
@@ -25,16 +23,11 @@
25
23
  // フォーム内の要素を全部列挙する。
26
24
  for (var i = 0; i < items.length; i++) {
27
25
  item = items[i];
28
- // セクションヘッダであれば、セクションヘッダとしてタイトルと説明文を変更する。
26
+ // タイトルと説明 (セクションヘッダ
29
27
  if (item.getType() == 'SECTION_HEADER') {
30
28
  var sectionHeaderItem = item.asSectionHeaderItem();
31
29
  sectionHeaderItem.setTitle("ここにタイトルを入れる");;
32
30
  sectionHeaderItem.setHelpText("ここに説明文を入れる")
33
- }
34
- // ページブレイクアイテムであれば、ページブレイクアイテムとしてタイトルと説明文を変更する。
35
- if (item.getType() == 'PAGE_BREAK') {
36
- item.setTitle("ここにタイトルを入れる");;
37
- item.setHelpText("ここに説明文を入れる")
38
31
  }
39
32
  }
40
33
  }

5

修正

2023/08/22 13:44

投稿

退会済みユーザー
test CHANGED
@@ -22,15 +22,16 @@
22
22
  function setSectionHeader() {
23
23
  var form = FormApp.getActiveForm();
24
24
  var items = form.getItems();
25
+ // フォーム内の要素を全部列挙する。
25
26
  for (var i = 0; i < items.length; i++) {
26
27
  item = items[i];
27
- // セクションヘッダタイトルと説明文を変更する。
28
+ // セクションヘッダであれば、セクションヘッダとしてタイトルと説明文を変更する。
28
29
  if (item.getType() == 'SECTION_HEADER') {
29
30
  var sectionHeaderItem = item.asSectionHeaderItem();
30
31
  sectionHeaderItem.setTitle("ここにタイトルを入れる");;
31
32
  sectionHeaderItem.setHelpText("ここに説明文を入れる")
32
33
  }
33
- // ページブレイクアイテムタイトルと説明文を変更する。
34
+ // ページブレイクアイテムであれば、ページブレイクアイテムとしてタイトルと説明文を変更する。
34
35
  if (item.getType() == 'PAGE_BREAK') {
35
36
  item.setTitle("ここにタイトルを入れる");;
36
37
  item.setHelpText("ここに説明文を入れる")

4

修正

2023/08/22 13:42

投稿

退会済みユーザー
test CHANGED
@@ -15,20 +15,23 @@
15
15
 
16
16
  「どの部分のタイトル・説明文を変えたいのか」を画像キャプチャで示していただくのが一番確実ですが、
17
17
  2番目・3番目のページブレイクアイテム/セクションヘッダどちらにも対応したコードは、下記です。
18
+
19
+ GASでは、アイテムを全部列挙して、そのアイテムがどのタイプかを調べたうえで、アイテムに応じた処理をする、という泥臭いやり方になります。
20
+
18
21
  ```js
19
22
  function setSectionHeader() {
20
23
  var form = FormApp.getActiveForm();
21
24
  var items = form.getItems();
22
25
  for (var i = 0; i < items.length; i++) {
23
26
  item = items[i];
27
+ // セクションヘッダのタイトルと説明文を変更する。
24
28
  if (item.getType() == 'SECTION_HEADER') {
25
29
  var sectionHeaderItem = item.asSectionHeaderItem();
26
30
  sectionHeaderItem.setTitle("ここにタイトルを入れる");;
27
31
  sectionHeaderItem.setHelpText("ここに説明文を入れる")
28
32
  }
33
+ // ページブレイクアイテムのタイトルと説明文を変更する。
29
34
  if (item.getType() == 'PAGE_BREAK') {
30
- console.log("PAGE_BREAK")
31
-
32
35
  item.setTitle("ここにタイトルを入れる");;
33
36
  item.setHelpText("ここに説明文を入れる")
34
37
  }

3

修正

2023/08/22 13:40

投稿

退会済みユーザー
test CHANGED
@@ -7,12 +7,12 @@
7
7
  ```
8
8
 
9
9
  <修正>
10
- タイトルと説明文を設定できるものは以下の3種類あります。
11
- ・1番上にある部分→これを変更するのは、上のコード。
12
- ・ページブレイクアイテム
13
- ・セクションヘッダ
14
10
 
15
- **れらは同じ形・色・レアウトでため文章だけで区別できせん**
11
+ ややしいんですが、Googleフォームにおいて、タイトルと説明文を設定ものは以下の**3種類**あり
12
+ ・フォームの1番上にあるタイトル(時に「セクション」という名前にもなる)→これを変更するのは、修正前の上のコード。
13
+ ・ページブレイクアイテム(任意の場所に挿入できる)
14
+ ・セクションヘッダ(任意の場所に挿入できる)
15
+
16
16
  「どの部分のタイトル・説明文を変えたいのか」を画像キャプチャで示していただくのが一番確実ですが、
17
17
  2番目・3番目のページブレイクアイテム/セクションヘッダどちらにも対応したコードは、下記です。
18
18
  ```js

2

修正

2023/08/22 13:31

投稿

退会済みユーザー
test CHANGED
@@ -7,7 +7,14 @@
7
7
  ```
8
8
 
9
9
  <修正>
10
+ タイトルと説明文を設定できるものは以下の3種類あります。
11
+ ・1番上にある部分→これを変更するのは、上のコード。
12
+ ・ページブレイクアイテム
13
+ ・セクションヘッダ
14
+
15
+ **これらは同じ形・色・レイアウトであるため、文章だけでは区別できません。**
10
- たとえば、すべてセクションヘッダのタイトルを同じ内容にしたいなら、下記ようにすればよいです
16
+ 「ど部分のタイトル・説明文変えたいのか」を画像キャプチャで示してただくのが一番確実ですが、
17
+ 2番目・3番目のページブレイクアイテム/セクションヘッダどちらにも対応したコードは、下記です。
11
18
  ```js
12
19
  function setSectionHeader() {
13
20
  var form = FormApp.getActiveForm();
@@ -19,33 +26,14 @@
19
26
  sectionHeaderItem.setTitle("ここにタイトルを入れる");;
20
27
  sectionHeaderItem.setHelpText("ここに説明文を入れる")
21
28
  }
22
- }
23
- }
24
- ```
25
-
26
- 1番目のセクションヘッダのタイトル・説明と2番目のタイトル・説明...というように、セクションヘッダに応じて変えたい場合は下記のようにすればよいです。
27
- 注意:必ずしも上から1番目・2番目...とはなりません。セクションヘッダの追加順序によっては順不同になります。したがって実際に実行して試す必要があります。
28
- ```js
29
- function setSectionHeader() {
30
- var form = FormApp.getActiveForm();
31
- var items = form.getItems();
32
- counter = 0;
33
- for (var i = 0; i < items.length; i++) {
34
- item = items[i];
35
- if (item.getType() == 'SECTION_HEADER') {
29
+ if (item.getType() == 'PAGE_BREAK') {
36
- var sectionHeaderItem = item.asSectionHeaderItem();
30
+ console.log("PAGE_BREAK")
37
- if (counter == 0){
31
+
38
- sectionHeaderItem.setTitle("1番目のタイトル");;
32
+ item.setTitle("ここにタイトルを入れる");;
39
- sectionHeaderItem.setHelpText("1番目の説明文")
33
+ item.setHelpText("ここに説明文を入れる")
40
- counter++;
41
- }
42
- if (counter == 1){
43
- sectionHeaderItem.setTitle("2番目のタイトル");;
44
- sectionHeaderItem.setHelpText("2番目の説明文")
45
- counter++;
46
- }
47
34
  }
48
35
  }
49
36
  }
50
37
  ```
51
38
 
39
+

1

修正

2023/08/22 13:22

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,47 @@
5
5
  form.setDescription("ここに説明文を入れる");
6
6
  }
7
7
  ```
8
+
9
+ <修正>
10
+ たとえば、すべてのセクションヘッダのタイトルを同じ内容にしたいなら、下記のようにすればよいです。
11
+ ```js
12
+ function setSectionHeader() {
13
+ var form = FormApp.getActiveForm();
14
+ var items = form.getItems();
15
+ for (var i = 0; i < items.length; i++) {
16
+ item = items[i];
17
+ if (item.getType() == 'SECTION_HEADER') {
18
+ var sectionHeaderItem = item.asSectionHeaderItem();
19
+ sectionHeaderItem.setTitle("ここにタイトルを入れる");;
20
+ sectionHeaderItem.setHelpText("ここに説明文を入れる")
21
+ }
22
+ }
23
+ }
24
+ ```
25
+
26
+ 1番目のセクションヘッダのタイトル・説明と2番目のタイトル・説明...というように、セクションヘッダに応じて変えたい場合は下記のようにすればよいです。
27
+ 注意:必ずしも上から1番目・2番目...とはなりません。セクションヘッダの追加順序によっては順不同になります。したがって実際に実行して試す必要があります。
28
+ ```js
29
+ function setSectionHeader() {
30
+ var form = FormApp.getActiveForm();
31
+ var items = form.getItems();
32
+ counter = 0;
33
+ for (var i = 0; i < items.length; i++) {
34
+ item = items[i];
35
+ if (item.getType() == 'SECTION_HEADER') {
36
+ var sectionHeaderItem = item.asSectionHeaderItem();
37
+ if (counter == 0){
38
+ sectionHeaderItem.setTitle("1番目のタイトル");;
39
+ sectionHeaderItem.setHelpText("1番目の説明文")
40
+ counter++;
41
+ }
42
+ if (counter == 1){
43
+ sectionHeaderItem.setTitle("2番目のタイトル");;
44
+ sectionHeaderItem.setHelpText("2番目の説明文")
45
+ counter++;
46
+ }
47
+ }
48
+ }
49
+ }
50
+ ```
51
+