質問編集履歴

2

コードの更新

2019/09/03 16:40

投稿

koroaisu
koroaisu

スコア8

test CHANGED
File without changes
test CHANGED
@@ -148,13 +148,13 @@
148
148
 
149
149
  if(month==2){
150
150
 
151
- var numofday=29
151
+ var numofday=29 //numofdayは月の日数及び実行回数を設定するための変数、2月分はうるう年に対応して手動で設定
152
152
 
153
153
  }
154
154
 
155
- else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
155
+ else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){ //
156
156
 
157
- var numofday=31
157
+ var numofday=31 
158
158
 
159
159
 
160
160
 
@@ -172,15 +172,11 @@
172
172
 
173
173
  for(var i=1;i<=numofday;i++){
174
174
 
175
- var newD=month+'月'+day+'日';
175
+ var newD=month+'月'+day+'日'; // Utilities.formatDate(new Date()+i, "Asia/Tokyo", 'MM月dd日')を試してみましたが、エラーが出たため、このような書き方にしました。
176
176
 
177
177
  newdays.push(newD);
178
178
 
179
- Logger.log('newdays');
180
-
181
- Logger.log(newdays);
182
-
183
- day=day+1;
179
+ day=day+1;
184
180
 
185
181
  }
186
182
 
@@ -188,7 +184,7 @@
188
184
 
189
185
  var lastC = sheet.getLastColumn();
190
186
 
191
- sheet.getRange(3,1,newdays,1).setValues(newdays[V]);
187
+ sheet.getRange(3,1,newdays,1).setValues(newdays[V]); //setValuesの際にクラスを変換できないエラーが出ました。
192
188
 
193
189
  }
194
190
 

1

コードの更新

2019/09/03 16:40

投稿

koroaisu
koroaisu

スコア8

test CHANGED
File without changes
test CHANGED
@@ -101,3 +101,97 @@
101
101
  ```
102
102
 
103
103
  このコードを実行する際に、folderTarget.addFile(fileSS).getId()をして、SpreadsheetApp.openById(id)で日付を記入するコードを実行するように書き換えてみましたが、idが上手く取得できませんでした。
104
+
105
+
106
+
107
+
108
+
109
+ ### 回答を頂いた後にアレンジしたコード
110
+
111
+ ```GAS
112
+
113
+ var FOLDER_ID = 'コピーするフォルダ';
114
+
115
+ function creatSS() {
116
+
117
+ var templateFileId = 'テンプレのリンク';
118
+
119
+ var newdate = Utilities.formatDate(new Date(), "Asia/Tokyo", 'yyyy/MM');
120
+
121
+ var sheetName = '日報'+newdate;
122
+
123
+ var ss = SpreadsheetApp.openById(templateFileId).copy(sheetName); //スプレッドシート
124
+
125
+ var file = DriveApp.getFileById(ss.getId()); //idを取得するタイミングを変更
126
+
127
+ DriveApp.getFolderById(FOLDER_ID).addFile(file); //ファイルを移動
128
+
129
+ DriveApp.getRootFolder().removeFile(file); //ルートフォルダのファイルを削除
130
+
131
+ setdate(ss); //自動的に日付を記入するコードを実行
132
+
133
+
134
+
135
+ }
136
+
137
+
138
+
139
+ function setdate(ss) {
140
+
141
+
142
+
143
+ var sheet = ss.getActiveSheet(); //新しく作ったスプレッドシート
144
+
145
+ var month = new Date().getMonth()+1;
146
+
147
+ var newdays=[];
148
+
149
+ if(month==2){
150
+
151
+ var numofday=29
152
+
153
+ }
154
+
155
+ else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
156
+
157
+ var numofday=31
158
+
159
+
160
+
161
+ }
162
+
163
+ else if(month==2||month==4||month==6||month==9||month==11){
164
+
165
+ var numofday=30
166
+
167
+
168
+
169
+ }
170
+
171
+ var day =1
172
+
173
+ for(var i=1;i<=numofday;i++){
174
+
175
+ var newD=month+'月'+day+'日';
176
+
177
+ newdays.push(newD);
178
+
179
+ Logger.log('newdays');
180
+
181
+ Logger.log(newdays);
182
+
183
+ day=day+1;
184
+
185
+ }
186
+
187
+ for(var V = 1; V <= numofday; V++) {
188
+
189
+ var lastC = sheet.getLastColumn();
190
+
191
+ sheet.getRange(3,1,newdays,1).setValues(newdays[V]);
192
+
193
+ }
194
+
195
+ }
196
+
197
+ ```