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

質問編集履歴

1

コードの挿入

2018/09/05 02:12

投稿

pee.cyon.cyon
pee.cyon.cyon

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,40 @@
1
- GASで領収書を自動作成する方法を、こちら↓↓↓のサイトを参考に作ってみたので
1
+ GASで領収書を自動作成する方法を、こちら↓↓↓のサイトを参考に作っていま
2
- http://www.atmarkit.co.jp/ait/articles/1802/05/news003.html
2
+ http://www.atmarkit.co.jp/ait/articles/1802/05/news003.html
3
+
4
+ ◆ひな型を元に、GASで自動作成したスプレッドシートは作成できるのですが
5
+ 中身を開くと、うまくデータが転記されておりません。
6
+
7
+ ◆私が私用したコードはこちらになります。
8
+ ↓↓↓
9
+ function createReceipt() {
10
+ var template = SpreadsheetApp.openById('領収書ひな型スプレッドシートID');
11
+ var sheet1 = SpreadsheetApp.getActiveSheet();
12
+
13
+
14
+ for(var i = 2; i <= 4; i++) {
15
+
16
+ //データの作成
17
+ var name = sheet1.getRange(i, 2).getValue(); //姓名
18
+ var description = sheet1.getRange(i, 4).getValue() ; //駅
19
+ var amount = sheet1.getRange(i, 6).getValue(); //金額
20
+
21
+ //ひな型をコピー
22
+ var ssName = '領収書(' + name + ')';
23
+ var sheet = template.copy(ssName).getSheetByName('領収書');
24
+
25
+ //データを転記
26
+ sheet.getRange('A4').setValue(name);
27
+ sheet.getRange('A6').setValue(description);
28
+ sheet.getRange('A7').setValue(amount);
29
+ }
30
+ }
31
+
32
+ ◆エラーメッセージ
33
+ ⇒ TypeError: null のメソッド「getRange」を呼び出せません。(行 18、ファイル「コード」)
34
+
35
+ ◆試してみたことは、3行目の
36
+ var sheet1 = SpreadsheetApp.getActiveSheet(); を
37
+ var sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名(=フォームの回答)");にして
38
+ シート名を特定させましたが、うまく転記することができませんでした。
39
+
3
- データをうく転記ることできずにいます。ご教示いただくことはできますでしょうか。
40
+ ご多忙の折恐れ入りますが、おわかりの方がらっしゃいしたら、ご教示いただくことはできますでしょうか。