teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2021/09/29 21:58

投稿

退会済みユーザー
answer CHANGED
@@ -300,7 +300,7 @@
300
300
 
301
301
  一般化すると、
302
302
  ```js
303
- schedule.slice(対象月の始まり曜日-1 ,対象月の始まり曜日-1 + 日数)
303
+ schedules.slice(対象月の始まり曜日-1 ,対象月の始まり曜日-1 + 日数)
304
304
  ```
305
305
  とすればちょうど1か月分のスケジュールデータの配列が切り取れます。
306
306
 

1

修正

2021/09/29 21:57

投稿

退会済みユーザー
answer CHANGED
@@ -270,13 +270,14 @@
270
270
 
271
271
  ・配列から一部を切り取るには、[slice()関数](https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/slice)を使います。
272
272
  ```
273
- slice(開始インデックス, 終了インデックス)
273
+ slice(開始インデックス, 開始インデックス+個数)
274
274
  ```
275
+ で、配列の [開始インデックス] から 指定した個数までの要素までを切り取ることができます。
275
276
  ```
276
277
  slice関数の使用例:
277
278
  const arr = ['a', 'b' ,'c', 'd', 'e', 'f'];
278
279
 
279
- // arr から、0始まりのインデックス2('c')から 4('e') を 切り取る
280
+ // arr から、0始まりのインデックス2('c')から 4('e') までの3個を 切り取る
280
281
 
281
282
  const f = arr.slice(2, 5); // 終了インデックスは、開始インデックス+切取り個数を指定する。
282
283
 
@@ -294,6 +295,7 @@
294
295
 
295
296
  たとえば木曜始まりの場合、「4」番目の項目から始まります。
296
297
  slice()関数はゼロ始まりで開始インデックスを指定するので、4-1=3 を開始インデックスとします。
298
+ (0,1,2,3 -> 4番目は「3」)
297
299
  また 4月の日数は「30」なので、終了インデックスは 3+30=33 となります。
298
300
 
299
301
  一般化すると、
@@ -320,12 +322,12 @@
320
322
  あとは、上記で取得したmonthlySchedulesを、☆に書き込めばいいです。
321
323
 
322
324
  ・書き込み開始セル:L3番地(=3行目,12列目)
323
- ・行数:先ほど取得した日数(daisOfMonth)
325
+ ・行数:先ほど取得した日数(daysOfMonth)
324
326
  ・列数:4列(L列~O列まで)
325
327
 
326
328
  なので、
327
-
328
- ☆シートに書き込むためのコードは下記のようになります。
329
+ monthlySchedules を「☆シートに書き込むためのコードは下記のようになります。
330
+ (これは前の質問の復習にもなっていますね)
329
331
  ```js
330
332
  mysheet1 = ss.getSheetByName("転記元");
331
333