回答編集履歴

2

修正を適用したコードを追記

2017/11/03 10:30

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -67,3 +67,89 @@
67
67
 
68
68
 
69
69
  実際に書いて試してみましょう。ご自分で書いたコードを提示しないとどこが分からないか回答者も分かりませんし、「要望まる投げ」と受け取られて、回答もつきづらくなります。
70
+
71
+
72
+
73
+ ---
74
+
75
+ **「どこを修正すべきか?」とのコメントをいただいたので参考に追記します**
76
+
77
+
78
+
79
+ ご提示の`myFunction`を修正するのであればこのようなコードになるかと思います。PDFファイルはマイドライブ直下に作ります。動作内容をご確認の上、適当に修正してください。
80
+
81
+
82
+
83
+ ```JavaScript
84
+
85
+ function myFunction() {
86
+
87
+ try {
88
+
89
+ // マイドライブ直下に保存
90
+
91
+ var root = DriveApp.getRootFolder();
92
+
93
+ var folderid = root.getId();
94
+
95
+
96
+
97
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
98
+
99
+
100
+
101
+ // 現在開いているスプレッドシートのIDを取得
102
+
103
+ var ssId = ss.getId();
104
+
105
+
106
+
107
+ // ファイル名に使用する名前を取得(スプレッドシートのA1)
108
+
109
+ var customer_name = ss.getRange("A1").getValue();
110
+
111
+
112
+
113
+ // ファイル名に使用するタイムスタンプを取得
114
+
115
+ var timestamp = getTimestamp();
116
+
117
+
118
+
119
+ var sheets = ss.getSheets();
120
+
121
+
122
+
123
+ // シート分PDFに出力
124
+
125
+ for (var i = 0; i < sheets.length; i++) {
126
+
127
+ // シートIDを取得
128
+
129
+ var sheetId = sheets[i].getSheetId();
130
+
131
+ // シート名を取得
132
+
133
+ var sheetName = sheets[i].getName();
134
+
135
+ // 拡張子抜きのファイル名を生成 "[A1セルの内容]_[シート名]_[タイムスタンプ]"
136
+
137
+ // var baseName = "S" + String(i + 1) + "_" + name;
138
+
139
+ var baseName = customer_name + "_" + sheetName + "_" + timestamp;
140
+
141
+ // PDFファイルを出力
142
+
143
+ createPDF(folderid, ssId, sheetId, baseName);
144
+
145
+ }
146
+
147
+ } catch (e) {
148
+
149
+ Logger.log("Exception: " + e);
150
+
151
+ }
152
+
153
+ }
154
+
155
+ ```

1

誤記修正

2017/11/03 10:30

投稿

dodox86
dodox86

スコア9183

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  } catch (e) {
52
52
 
53
- Loggger.log("Exception: " + e);
53
+ Logger.log("Exception: " + e);
54
54
 
55
55
  }
56
56