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

質問編集履歴

1

コードをすべて掲載しました。

2021/07/30 10:27

投稿

Elly_
Elly_

スコア11

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,24 @@
14
14
  ### 該当のソースコード
15
15
 
16
16
  ```ここに言語名を入力
17
+ // 本日のTODOを作成する
18
+ function addTodoSheet() {
19
+
20
+ // 前日からコピーする
21
+ const ss = SpreadsheetApp.getActiveSpreadsheet();
22
+
23
+ const yesterday = getYesterdayYMD()
24
+ const today = getNowYMD()
25
+
26
+ const sh = ss.getSheetByName(yesterday)
27
+ sh.copyTo(ss).setName(today)
28
+ const todaySheet = ss.getSheetByName(today)
29
+
30
+ ss.setActiveSheet(todaySheet)
31
+ ss.moveActiveSheet(1)
32
+ ss.setActiveSheet(todaySheet)
33
+
17
- // TODOを初期化する
34
+ // TODOを初期化する
18
35
  const lastRow = sh.getLastRow();
19
36
  const nsh = ss.getActiveSheet();
20
37
  for(let i = 1; i <= lastRow; i++) {
@@ -30,6 +47,42 @@
30
47
  nsh.deleteRows(i);
31
48
  }
32
49
  }
50
+
51
+ }
52
+
53
+ // yyyymmdd形式で日付を取得する
54
+ function getNowYMD(){
55
+ const dt = new Date();
56
+ const y = dt.getFullYear();
57
+ const m = ("00" + (dt.getMonth()+1)).slice(-2);
58
+ const d = ("00" + dt.getDate()).slice(-2);
59
+ const result = m + d;
60
+ return result;
61
+ }
62
+
63
+ // yyyymmdd形式で日付を取得する
64
+ function getYesterdayYMD(){
65
+ const dt = new Date();
66
+ dt.setDate(dt.getDate() - 1);
67
+ const y = dt.getFullYear();
68
+ const m = ("00" + (dt.getMonth()+1)).slice(-2);
69
+ const d = ("00" + (dt.getDate())).slice(-2);
70
+ const result = m + d;
71
+ return result;
72
+ }
73
+
74
+ // スプレッドシートのメニューからPDF作成用の関数を実行出来るように、「スクリプト」というメニューを追加。
75
+ function onOpen() {
76
+ const sheet = SpreadsheetApp.getActiveSpreadsheet();
77
+ const entries = [
78
+ {
79
+ name : "TODO作成",
80
+ functionName : "addTodoSheet"
81
+ },
82
+ ];
83
+ sheet.addMenu("スクリプト", entries);
84
+ };
85
+
33
86
  ```
34
87
 
35
88
  ### 試したこと