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

質問編集履歴

2

タグを追加

2019/12/16 08:10

投稿

Gento
Gento

スコア77

title CHANGED
File without changes
body CHANGED
File without changes

1

試した事を追加

2019/12/16 08:10

投稿

Gento
Gento

スコア77

title CHANGED
File without changes
body CHANGED
@@ -54,5 +54,38 @@
54
54
  }
55
55
  ```
56
56
 
57
+ ### 試した事
58
+ ` var template = DriveApp.getFileById(templateid);`で作った**template**からでは、**getRange()**が呼べないようなので、コピー作成されたシートを名前で指定して取得し、**getRange()**を呼んでみました。
59
+
60
+ ```gas
61
+ //現在のスプレットシートを取得する
62
+ var sheet1 = SpreadsheetApp.getActiveSheet();
63
+
64
+ //コピー先のスプレットシートのid
65
+ var templateid = "14O0u_YKnbw4w8gwidynx80pMeGfnTWkzw6zatUAAmpI";
66
+ var template = DriveApp.getFileById(templateid);
67
+
68
+ //保存先フォルダオブジェクトの取得
69
+ var destfolderid = "1s8k_JA49Vp0skfTRJ7spduq9iagXb5v_";
70
+ var destfolder = DriveApp.getFolderById(destfolderid);
71
+
72
+ var name1 = sheet1.getRange(2, 2).getValue();
73
+ var name2 = sheet1.getRange(3, 2).getValue();
74
+
75
+ var filename = '請求書(' + name1 + ')';
76
+ var sheet = template.makeCopy(filename, destfolder);
77
+
78
+ var copiedSheet = SpreadsheetApp.getActiveSpreadsheet(); //追加
79
+ var invoice = copiedSheet.getSheetByName(filename); //追加
80
+ Logger.log(invoice);
81
+
82
+ //データを転記
83
+ //コピー先のシートの中のセルを指定して、コピー実行
84
+ invoice.getRange(2, 2).setValue(name1);
85
+ invoice.getRange(3, 2).setValue(name2);
86
+ ```
87
+
88
+ しかし、`invoice`は**null**で、結局**getRange()**は呼べなかったです。。。
89
+
57
90
  ### 補足情報(FW/ツールのバージョンなど)
58
91
  [こちら](https://qiita.com/nurburg/items/744ec53477f4ae328555#コピー作成したスプレッドシートに書き込む)を参考に、指定フォルダへのコピー作成を実装できました。