質問編集履歴
11
データの変更をおこないました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
function 勤怠() {
|
24
24
|
|
25
|
-
var sheet1 = SpreadsheetApp.openById('
|
25
|
+
var sheet1 = SpreadsheetApp.openById('*********');
|
26
26
|
|
27
27
|
var date = new Date(); //現在日時のDateオブジェクトを作る
|
28
28
|
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
var sh1 = sheet1.getSheetByName("勤怠");
|
36
36
|
|
37
|
-
var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【
|
37
|
+
var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【ト
|
38
38
|
|
39
39
|
var col = sh5.getRange(7,3).getValues();
|
40
40
|
|
10
タグを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
9
コード自体は動くのですが、処理速度が遅いです。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
GASの配列を使用して文字入力
|
1
|
+
GASの配列を使用して文字入力する速度を速めたい
|
test
CHANGED
@@ -1,8 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
|
3
|
+
GASの配列を使用して文字入力する速度を速めたい
|
4
|
-
|
5
|
-
|
6
4
|
|
7
5
|
|
8
6
|
|
@@ -12,15 +10,13 @@
|
|
12
10
|
|
13
11
|
以下のコードで上記に記載の内容を実現したいのですが、
|
14
12
|
|
15
|
-
|
13
|
+
処理速度が遅く、現場で使用できるレベルではありません。
|
16
14
|
|
17
15
|
|
18
16
|
|
19
17
|
### 該当のソースコード
|
20
18
|
|
21
19
|
|
22
|
-
|
23
|
-
```ここに言語を入力
|
24
20
|
|
25
21
|
```GAS
|
26
22
|
|
@@ -48,31 +44,29 @@
|
|
48
44
|
|
49
45
|
var ary2 = sh5.getRange(10,6,i,1).getValues();
|
50
46
|
|
51
|
-
var ary3 = sh1.getRange("A
|
47
|
+
var ary3 = sh1.getRange("A6:A32")
|
52
48
|
|
53
|
-
|
49
|
+
for(let j = 0; j < ary2.length ;j++){
|
54
50
|
|
55
|
-
|
51
|
+
var KEY=ary2[j][0]
|
56
52
|
|
57
|
-
ary3
|
53
|
+
if (ary3.createTextFinder(KEY).findNext()) {
|
58
54
|
|
59
|
-
sh1.getRange("A1").setValues(ary3)
|
60
|
-
|
61
|
-
|
55
|
+
Logger.log("存在します!");
|
62
56
|
|
63
57
|
ary1[j][0]="欠勤"
|
64
58
|
|
65
|
-
sh5.getRange(10+j,col).setValue(ary1);
|
59
|
+
sh5.getRange(10+j,col).setValue(ary1);
|
60
|
+
|
61
|
+
}
|
66
62
|
|
67
63
|
}
|
68
64
|
|
69
65
|
}
|
70
66
|
|
71
|
-
|
67
|
+
```
|
72
68
|
|
73
|
-
|
74
|
-
|
75
|
-
|
69
|
+
|
76
70
|
|
77
71
|
|
78
72
|
|
@@ -85,21 +79,3 @@
|
|
85
79
|
|
86
80
|
|
87
81
|
### 補足情報(FW/ツールのバージョンなど)
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
尚、A1、A2、A3内のセル上の式や役割に関しては以下をご確認下さい。
|
92
|
-
|
93
|
-
※A1の役割:シフト上から名前をとってきてfor文で回して1人づつ記載する
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
※A2の式:=QUERY(A6:A32,"Where A='"&A1&"'")
|
98
|
-
|
99
|
-
⇒A1セルに出た名前がA6~A32にあれば同様の名前を返す
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
※A3の式:=A1=A2
|
104
|
-
|
105
|
-
⇒こちらがイコールで結ばれるとA3にTRUEが入る
|
8
タグを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
7
修正いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,8 @@
|
|
19
19
|
### 該当のソースコード
|
20
20
|
|
21
21
|
|
22
|
+
|
23
|
+
```ここに言語を入力
|
22
24
|
|
23
25
|
```GAS
|
24
26
|
|
@@ -70,6 +72,8 @@
|
|
70
72
|
|
71
73
|
|
72
74
|
|
75
|
+
```
|
76
|
+
|
73
77
|
|
74
78
|
|
75
79
|
### 試したこと
|
6
コードの一部を修正致しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,7 +56,7 @@
|
|
56
56
|
|
57
57
|
sh1.getRange("A1").setValues(ary3)
|
58
58
|
|
59
|
-
if(ary4[0][0]="TRUE"){
|
59
|
+
if(ary4[0][0]=="TRUE"){
|
60
60
|
|
61
61
|
ary1[j][0]="欠勤"
|
62
62
|
|
@@ -68,13 +68,7 @@
|
|
68
68
|
|
69
69
|
}
|
70
70
|
|
71
|
-
```
|
72
71
|
|
73
|
-
```
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
```
|
78
72
|
|
79
73
|
|
80
74
|
|
5
セル上の式と役割に関して記載いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,23 +20,23 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
```
|
23
|
+
```GAS
|
24
24
|
|
25
25
|
function 勤怠() {
|
26
26
|
|
27
|
-
var sheet1 = SpreadsheetApp.openById('
|
27
|
+
var sheet1 = SpreadsheetApp.openById('1tIjXivR9bVB0_7edrBhtv9z7lKI5zuz7bEPa_kawP_w');// 【つくば2】入出庫_シフト
|
28
28
|
|
29
|
-
var date = new Date(); //
|
29
|
+
var date = new Date(); //現在日時のDateオブジェクトを作る
|
30
30
|
|
31
|
-
var day = date.getDate();//
|
31
|
+
var day = date.getDate();//現在の「日」を取得
|
32
32
|
|
33
33
|
date.setDate(day+1);//前日日付にしたいので-1する
|
34
34
|
|
35
|
-
var yesterday = Utilities.formatDate(date, 'JST', 'MM');//
|
35
|
+
var yesterday = Utilities.formatDate(date, 'JST', 'MM');//日付の表示形式を整形する
|
36
36
|
|
37
37
|
var sh1 = sheet1.getSheetByName("勤怠");
|
38
38
|
|
39
|
-
var sh5 = sheet1.getSheetByName(yesterday + '月1部');//
|
39
|
+
var sh5 = sheet1.getSheetByName(yesterday + '月1部');//【つくば2】入出庫_10月シフト
|
40
40
|
|
41
41
|
var col = sh5.getRange(7,3).getValues();
|
42
42
|
|
@@ -56,9 +56,9 @@
|
|
56
56
|
|
57
57
|
sh1.getRange("A1").setValues(ary3)
|
58
58
|
|
59
|
-
if(ary4="TRUE"){
|
59
|
+
if(ary4[0][0]="TRUE"){
|
60
60
|
|
61
|
-
ary1[j]
|
61
|
+
ary1[j][0]="欠勤"
|
62
62
|
|
63
63
|
sh5.getRange(10+j,col).setValue(ary1);
|
64
64
|
|
@@ -67,6 +67,10 @@
|
|
67
67
|
}
|
68
68
|
|
69
69
|
}
|
70
|
+
|
71
|
+
```
|
72
|
+
|
73
|
+
```
|
70
74
|
|
71
75
|
|
72
76
|
|
@@ -86,6 +90,18 @@
|
|
86
90
|
|
87
91
|
|
88
92
|
|
89
|
-
尚、A3の
|
93
|
+
尚、A1、A2、A3内のセル上の式や役割に関しては以下をご確認下さい。
|
90
94
|
|
95
|
+
※A1の役割:シフト上から名前をとってきてfor文で回して1人づつ記載する
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
※A2の式:=QUERY(A6:A32,"Where A='"&A1&"'")
|
100
|
+
|
101
|
+
⇒A1セルに出た名前がA6~A32にあれば同様の名前を返す
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
※A3の式:=A1=A2
|
106
|
+
|
91
|
-
|
107
|
+
⇒こちらがイコールで結ばれるとA3にTRUEが入る
|
4
セルA3の数式の仕組みを記載しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -86,4 +86,6 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
尚、TRUEの判定を下すセルに関してはセル上に数式を直接入力して判定をくだしています。
|
89
|
+
尚、A3のTRUEの判定を下すセルに関してはセル上に数式を直接入力して判定をくだしています。
|
90
|
+
|
91
|
+
※A3の式:=A1=A2 こちらがイコールで結ばれるとA3にTRUEが入る仕組みです。
|
3
タグを追加しました。
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
コードの挿入にて挿入させて頂きました。どうぞ、よろしくお願い致します。
test
CHANGED
File without changes
|
test
CHANGED
@@ -19,6 +19,8 @@
|
|
19
19
|
### 該当のソースコード
|
20
20
|
|
21
21
|
|
22
|
+
|
23
|
+
```ここに言語を入力
|
22
24
|
|
23
25
|
function 勤怠() {
|
24
26
|
|
@@ -68,6 +70,8 @@
|
|
68
70
|
|
69
71
|
|
70
72
|
|
73
|
+
```
|
74
|
+
|
71
75
|
|
72
76
|
|
73
77
|
### 試したこと
|
1
言語の記載がありませんでしたが、こちらGASでのプログラムとなります。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
配列を使用して文字入力
|
1
|
+
GASの配列を使用して文字入力
|
test
CHANGED
File without changes
|