回答編集履歴
11
switch文に関する注意を追加
test
CHANGED
@@ -189,3 +189,11 @@
|
|
189
189
|
|
190
190
|
|
191
191
|
今回は、無題()関数の中に、さらに関数myFunctionを入れる必要はないので、function myFunction{と対応する}の行を削除しています。
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
注意:switch文を使う場合、**各処理の終わりのbreak**を忘れないでください。
|
196
|
+
|
197
|
+
break文を適切な場所に書いていないと、次の処理まで実行されてしまいます。
|
198
|
+
|
199
|
+
(break文を忘れるリスクがあるため、switchは非推奨とし、代わりにif~else文や、関数の連想配列を使用すべき、としている説明もあります)
|
10
元のコメントで全角スペースとなっていたのをそのままにしてしまっていたので修正
test
CHANGED
@@ -174,7 +174,7 @@
|
|
174
174
|
|
175
175
|
|
176
176
|
|
177
|
-
|
177
|
+
sheet.getRange("A1").activate();
|
178
178
|
|
179
179
|
|
180
180
|
|
9
test
CHANGED
@@ -178,7 +178,9 @@
|
|
178
178
|
|
179
179
|
|
180
180
|
|
181
|
+
-}} // 「myFunction{」に対応する 「}」を削除
|
182
|
+
|
181
|
-
}
|
183
|
+
+}
|
182
184
|
|
183
185
|
```
|
184
186
|
|
8
コメントが後だし修正があったので修正
test
CHANGED
@@ -184,6 +184,6 @@
|
|
184
184
|
|
185
185
|
|
186
186
|
|
187
|
-
「保存できません」ということですが、中括弧{}の数が対応していないのが原因です。
|
188
187
|
|
188
|
+
|
189
|
-
今回は、無題()関数の中に、さらに関数myFunctionを入れる必要はないので、function myFunctionの行を削除しています。
|
189
|
+
今回は、無題()関数の中に、さらに関数myFunctionを入れる必要はないので、function myFunction{と対応する}の行を削除しています。
|
7
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
コメント中のコードの修正ですが、下記のようになります。
|
88
88
|
|
89
|
-
(先頭
|
89
|
+
(先頭が「+」となっている行は追加、「-」となっている行は削除)
|
90
90
|
|
91
91
|
```diff
|
92
92
|
|
6
コメント中のコードの修正
test
CHANGED
@@ -82,8 +82,108 @@
|
|
82
82
|
|
83
83
|
|
84
84
|
|
85
|
-
|
85
|
+
---
|
86
86
|
|
87
|
-
|
87
|
+
コメント中のコードの修正ですが、下記のようになります。
|
88
88
|
|
89
|
+
(先頭ga+となっている行は追加、-となっている行は削除)
|
90
|
+
|
91
|
+
```diff
|
92
|
+
|
93
|
+
function 無題() {
|
94
|
+
|
95
|
+
var ss = SpreadsheetApp.getActiveSpreadsheet();
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
var sheet = ss.getSheetByName("展開");
|
100
|
+
|
101
|
+
sheet.getRange(1, 1).setValue("日付");
|
102
|
+
|
103
|
+
sheet.getRange(1, 2).setValue("会社名");
|
104
|
+
|
105
|
+
sheet.getRange(1, 3).setValue("No");
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
var sheet0 = ss.getActiveSheet();
|
112
|
+
|
113
|
+
var cell = sheet0.getActiveCell();
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
if (cell.getColumn() != 1) {
|
118
|
+
|
119
|
+
var row = cell.getRow();
|
120
|
+
|
121
|
+
var column = cell.getColumn();
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
- function myFunction() { // ここでは不要。
|
126
|
+
|
127
|
+
- let values = null; // 変数valuesは下記caseの中では使用していないので不要
|
128
|
+
|
89
|
-
|
129
|
+
- switch (sheet0) { // シートオブジェクトでswitchしてしまっているためNG。
|
130
|
+
|
131
|
+
+ switch (sheet0.getSheetName()) { // ここではシート名でswitchするのが正しい。
|
132
|
+
|
133
|
+
case "T/B":
|
134
|
+
|
135
|
+
var value1 = cell.offset((row-1)*(-1),0).getValue();
|
136
|
+
|
137
|
+
var value2 = cell.offset(0,(column-1)*(-1)+2).getValue();
|
138
|
+
|
139
|
+
sheet.getRange(1, 1).setValue(value1);
|
140
|
+
|
141
|
+
sheet.getRange(1, 4).setValue(value2);
|
142
|
+
|
143
|
+
sheet.getRange(1, 12).setValue(value2);
|
144
|
+
|
145
|
+
break;
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
case "消費税":
|
150
|
+
|
151
|
+
var value3 = cell.offset((row-1)*(-1),0).getValue();
|
152
|
+
|
153
|
+
var value4 = cell.offset(0,(column-1)*(-1)+2).getValue();
|
154
|
+
|
155
|
+
var value5 = cell.offset(0,(column-1)*(-1)+1).getValue();
|
156
|
+
|
157
|
+
|
158
|
+
|
159
|
+
sheet.getRange(1, 1).setValue(value3);
|
160
|
+
|
161
|
+
sheet.getRange(1, 7).setValue(value4);
|
162
|
+
|
163
|
+
sheet.getRange(1, 15).setValue(value4);
|
164
|
+
|
165
|
+
sheet.getRange(1, 2).setValue(value5);
|
166
|
+
|
167
|
+
break;
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
}
|
172
|
+
|
173
|
+
}
|
174
|
+
|
175
|
+
|
176
|
+
|
177
|
+
sheet.getRange("A1").activate();
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
}
|
182
|
+
|
183
|
+
```
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
「保存できません」ということですが、中括弧{}の数が対応していないのが原因です。
|
188
|
+
|
189
|
+
今回は、無題()関数の中に、さらに関数myFunctionを入れる必要はないので、function myFunctionの行を削除しています。
|
5
test
CHANGED
@@ -54,13 +54,27 @@
|
|
54
54
|
|
55
55
|
break;
|
56
56
|
|
57
|
+
|
58
|
+
|
59
|
+
default:
|
60
|
+
|
61
|
+
// activeSheetNameが「シート1」「シート2」「シート3」以外の場合、何もしない。
|
62
|
+
|
63
|
+
return;
|
64
|
+
|
57
65
|
}
|
58
66
|
|
59
67
|
|
60
68
|
|
61
69
|
// シート4に対して共通処理を行う
|
62
70
|
|
71
|
+
if (values != null) {
|
72
|
+
|
63
|
-
sheet4.getRange("C3:F5").setValues(values);
|
73
|
+
sheet4.getRange("C3:F5").setValues(values);
|
74
|
+
|
75
|
+
// ~~
|
76
|
+
|
77
|
+
}
|
64
78
|
|
65
79
|
}
|
66
80
|
|
4
test
CHANGED
@@ -12,11 +12,17 @@
|
|
12
12
|
|
13
13
|
const activeSheetName = activeSheet.getSheetName();
|
14
14
|
|
15
|
+
const sheet4 = ss.getSheetByName('シート4');
|
16
|
+
|
15
17
|
|
16
18
|
|
17
19
|
// 各シートのボタンに紐付けているスクリプトは、myFunction(共通)
|
18
20
|
|
19
21
|
function myFunction() {
|
22
|
+
|
23
|
+
let values = null;
|
24
|
+
|
25
|
+
// シート名に応じて処理を分ける
|
20
26
|
|
21
27
|
switch (activeSheetName) {
|
22
28
|
|
@@ -24,7 +30,7 @@
|
|
24
30
|
|
25
31
|
// シート1の処理
|
26
32
|
|
27
|
-
activeSheet.getRange("A1:D3").
|
33
|
+
values = activeSheet.getRange("A1:D3").getValues();
|
28
34
|
|
29
35
|
break;
|
30
36
|
|
@@ -34,7 +40,7 @@
|
|
34
40
|
|
35
41
|
// シート2の処理
|
36
42
|
|
37
|
-
activeSheet.getRange("E1:H3").
|
43
|
+
values = activeSheet.getRange("E1:H3").getValues();
|
38
44
|
|
39
45
|
break;
|
40
46
|
|
@@ -44,31 +50,17 @@
|
|
44
50
|
|
45
51
|
// シート3の処理
|
46
52
|
|
47
|
-
activeSheet.getRange("A10:D14").setValues(~~);
|
48
|
-
|
49
|
-
break;
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
case 'シート4':
|
54
|
-
|
55
|
-
// シート4の処理
|
56
|
-
|
57
|
-
|
53
|
+
values = activeSheet.getRange("A10:D12").getValues();
|
58
|
-
|
59
|
-
for (let i of a) {
|
60
|
-
|
61
|
-
for (let j of i) {
|
62
|
-
|
63
|
-
//~何かの処理~
|
64
|
-
|
65
|
-
}
|
66
|
-
|
67
|
-
}
|
68
54
|
|
69
55
|
break;
|
70
56
|
|
71
57
|
}
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
// シート4に対して共通処理を行う
|
62
|
+
|
63
|
+
sheet4.getRange("C3:F5").setValues(values);
|
72
64
|
|
73
65
|
}
|
74
66
|
|
3
test
CHANGED
@@ -14,55 +14,61 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
|
17
|
+
// 各シートのボタンに紐付けているスクリプトは、myFunction(共通)
|
18
18
|
|
19
|
-
|
19
|
+
function myFunction() {
|
20
20
|
|
21
|
-
|
21
|
+
switch (activeSheetName) {
|
22
22
|
|
23
|
-
|
23
|
+
case 'シート1':
|
24
24
|
|
25
|
+
// シート1の処理
|
26
|
+
|
27
|
+
activeSheet.getRange("A1:D3").setValues(~~);
|
28
|
+
|
25
|
-
break;
|
29
|
+
break;
|
26
30
|
|
27
31
|
|
28
32
|
|
29
|
-
case 'シート2':
|
33
|
+
case 'シート2':
|
30
34
|
|
31
|
-
// シート2の処理
|
35
|
+
// シート2の処理
|
32
36
|
|
33
|
-
activeSheet.getRange("E1:H3").setValues(~~)
|
37
|
+
activeSheet.getRange("E1:H3").setValues(~~);
|
34
38
|
|
35
|
-
break;
|
39
|
+
break;
|
36
40
|
|
37
41
|
|
38
42
|
|
39
|
-
case 'シート3':
|
43
|
+
case 'シート3':
|
40
44
|
|
41
|
-
// シート3の処理
|
45
|
+
// シート3の処理
|
42
46
|
|
43
|
-
activeSheet.getRange("A10:D14").setValues(~~)
|
47
|
+
activeSheet.getRange("A10:D14").setValues(~~);
|
44
48
|
|
45
|
-
break;
|
49
|
+
break;
|
46
50
|
|
47
51
|
|
48
52
|
|
49
|
-
case 'シート4':
|
53
|
+
case 'シート4':
|
50
54
|
|
51
|
-
// シート4の処理
|
55
|
+
// シート4の処理
|
52
56
|
|
53
|
-
const a = activeSheet.getRange("A10:D14").getValues();
|
57
|
+
const a = activeSheet.getRange("A10:D14").getValues();
|
54
58
|
|
55
|
-
for (let i of a){
|
59
|
+
for (let i of a) {
|
56
60
|
|
57
|
-
for (let j of i){
|
61
|
+
for (let j of i) {
|
58
62
|
|
59
|
-
//~何かの処理~
|
63
|
+
//~何かの処理~
|
64
|
+
|
65
|
+
}
|
60
66
|
|
61
67
|
}
|
62
68
|
|
63
|
-
|
69
|
+
break;
|
64
70
|
|
65
|
-
|
71
|
+
}
|
66
72
|
|
67
73
|
}
|
68
74
|
|
2
test
CHANGED
@@ -6,7 +6,11 @@
|
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
|
+
const ss = SpreadsheetApp.getActiveSpreadsheet();
|
10
|
+
|
11
|
+
const activeSheet = ss.getActiveSheet();
|
12
|
+
|
9
|
-
const activeSheetName =
|
13
|
+
const activeSheetName = activeSheet.getSheetName();
|
10
14
|
|
11
15
|
|
12
16
|
|
@@ -16,6 +20,8 @@
|
|
16
20
|
|
17
21
|
// シート1の処理
|
18
22
|
|
23
|
+
activeSheet.getRange("A1:D3").setValues(~~)
|
24
|
+
|
19
25
|
break;
|
20
26
|
|
21
27
|
|
@@ -23,6 +29,8 @@
|
|
23
29
|
case 'シート2':
|
24
30
|
|
25
31
|
// シート2の処理
|
32
|
+
|
33
|
+
activeSheet.getRange("E1:H3").setValues(~~)
|
26
34
|
|
27
35
|
break;
|
28
36
|
|
@@ -32,6 +40,8 @@
|
|
32
40
|
|
33
41
|
// シート3の処理
|
34
42
|
|
43
|
+
activeSheet.getRange("A10:D14").setValues(~~)
|
44
|
+
|
35
45
|
break;
|
36
46
|
|
37
47
|
|
@@ -39,6 +49,18 @@
|
|
39
49
|
case 'シート4':
|
40
50
|
|
41
51
|
// シート4の処理
|
52
|
+
|
53
|
+
const a = activeSheet.getRange("A10:D14").getValues();
|
54
|
+
|
55
|
+
for (let i of a){
|
56
|
+
|
57
|
+
for (let j of i){
|
58
|
+
|
59
|
+
//~何かの処理~
|
60
|
+
|
61
|
+
}
|
62
|
+
|
63
|
+
}
|
42
64
|
|
43
65
|
break;
|
44
66
|
|
1
test
CHANGED
@@ -50,6 +50,6 @@
|
|
50
50
|
|
51
51
|
なお、仮に「シート1~シート4の中に共通の処理があるため、それをまとめたい」ということならば、
|
52
52
|
|
53
|
-
そのシート1~シート4
|
53
|
+
そのシート1~シート4それぞれで行いたいコードを個別に全部記載してください。
|
54
54
|
|
55
55
|
具体的なコードを書いていただかない以上、それらの処理の共通部分をどの程度まとめられるのか、アドバイスのしようもないと思います。
|