質問編集履歴

2

コードの修正をいたしました。(//追加箇所というところになります)

2022/05/17 08:30

投稿

tkt1964
tkt1964

スコア5

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,25 @@
68
68
  range.setDataValidation(rule);
69
69
  }
70
70
  }
71
+ //追加箇所
72
+ function getRule(category1Value, settingData, column) {
73
+ // カテゴリ1に対応するカテゴリ2を入れておくところ
74
+ let catgory2List = [];
75
+
76
+ // 設定シート のデータの中から、「選択されたカテゴリ1」に対応するカテゴリ2を取り出すところ
77
+ settingData.forEach(row => {
78
+ if (row[0] === category1Value) {
79
+ catgory2List.push(row[column]);
80
+ }
81
+ });
82
+ if (catgory2List.length === 0) return;
83
+
84
+ // 編集されたセルの右以降のセルにカテゴリ2のデータを貼り付ける
85
+ const rule = SpreadsheetApp.newDataValidation().requireValueInList(catgory2List, true);
86
+ rule.editsheet.appendRow(catgory2List);
87
+ return rule;
88
+ }
89
+ //追加箇所
71
90
 
72
91
  function getRule(category1Value, settingData, column) {
73
92
  // カテゴリ1に対応するカテゴリ2を入れておくところ
@@ -79,7 +98,9 @@
79
98
  catgory2List.push(row[column]);
80
99
  }
81
100
  });
101
+ if (catgory2List.length === 0) return;
82
102
 
103
+ // 編集されたセルの右以降のセルにカテゴリ2のプルダウンをセットする
83
104
  const rule = SpreadsheetApp.newDataValidation().requireValueInList(catgory2List, true);
84
105
  rule.setAllowInvalid(false).build();
85
106
  return rule;
@@ -104,9 +125,12 @@
104
125
 
105
126
  ### 試したこと
106
127
 
107
- プルダウンをセットする前に、貼り付けするコードを入れてみましたが
128
+ ~~プルダウンをセットする前に、貼り付けするコードを入れてみましたが
108
- エラーが出てしまい、こちらに再度ご質問させていただきました。
129
+ エラーが出てしまい、こちらに再度ご質問させていただきました。~~
109
130
 
131
+ 追加箇所に二次元配列のデータを貼り付けるコードを入れてみましたが
132
+ 上手く作動しません。
133
+ 入力してもデータ貼り付けなし、プルダウン作成もしなくなりました。
110
134
 
111
135
 
112
136
  お手数ですが、ご尽力いただければ幸いです。

1

 

2022/05/17 01:34

投稿

tkt1964
tkt1964

スコア5

test CHANGED
@@ -1 +1 @@
1
- GASを使用した条件分岐によるデータ貼り付けとプルダウン作成
1
+ GASを使用した条件分岐によるデータ貼り付けしたあとプルダウン作成を追加したい
test CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  ### 実現したいこと
7
7
 
8
- ・スプレッドシート上で既に設定したプルダウンを選択、その内容を基に**別シートの対照表最初に該当するデータを貼り付け**
8
+ ・スプレッドシート上で既に設定したプルダウンを選択、その内容を基に**別シートの対照表最初に該当するデータを貼り付け**
9
9
  ・貼り付けたセルにプルダウンを作成
10
10
  ・作成されたプルダウンの内容は別シートの対照表を参照
11
11
  ・貼り付ける/プルダウンを作成される列は6列(B列で項目選択、C~H列にプルダウン作成)