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

回答編集履歴

2

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

2017/11/03 10:30

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -32,4 +32,47 @@
32
32
 
33
33
  > プログラムがあまり詳しくないため試してはいません。。。
34
34
 
35
- 実際に書いて試してみましょう。ご自分で書いたコードを提示しないとどこが分からないか回答者も分かりませんし、「要望まる投げ」と受け取られて、回答もつきづらくなります。
35
+ 実際に書いて試してみましょう。ご自分で書いたコードを提示しないとどこが分からないか回答者も分かりませんし、「要望まる投げ」と受け取られて、回答もつきづらくなります。
36
+
37
+ ---
38
+ **「どこを修正すべきか?」とのコメントをいただいたので参考に追記します**
39
+
40
+ ご提示の`myFunction`を修正するのであればこのようなコードになるかと思います。PDFファイルはマイドライブ直下に作ります。動作内容をご確認の上、適当に修正してください。
41
+
42
+ ```JavaScript
43
+ function myFunction() {
44
+ try {
45
+ // マイドライブ直下に保存
46
+ var root = DriveApp.getRootFolder();
47
+ var folderid = root.getId();
48
+
49
+ var ss = SpreadsheetApp.getActiveSpreadsheet();
50
+
51
+ // 現在開いているスプレッドシートのIDを取得
52
+ var ssId = ss.getId();
53
+
54
+ // ファイル名に使用する名前を取得(スプレッドシートのA1)
55
+ var customer_name = ss.getRange("A1").getValue();
56
+
57
+ // ファイル名に使用するタイムスタンプを取得
58
+ var timestamp = getTimestamp();
59
+
60
+ var sheets = ss.getSheets();
61
+
62
+ // シート分PDFに出力
63
+ for (var i = 0; i < sheets.length; i++) {
64
+ // シートIDを取得
65
+ var sheetId = sheets[i].getSheetId();
66
+ // シート名を取得
67
+ var sheetName = sheets[i].getName();
68
+ // 拡張子抜きのファイル名を生成 "[A1セルの内容]_[シート名]_[タイムスタンプ]"
69
+ // var baseName = "S" + String(i + 1) + "_" + name;
70
+ var baseName = customer_name + "_" + sheetName + "_" + timestamp;
71
+ // PDFファイルを出力
72
+ createPDF(folderid, ssId, sheetId, baseName);
73
+ }
74
+ } catch (e) {
75
+ Logger.log("Exception: " + e);
76
+ }
77
+ }
78
+ ```

1

誤記修正

2017/11/03 10:30

投稿

dodox86
dodox86

スコア9416

answer CHANGED
@@ -24,7 +24,7 @@
24
24
  createPDF(folderId, ssId, sheetId, baseName);
25
25
  }
26
26
  } catch (e) {
27
- Loggger.log("Exception: " + e);
27
+ Logger.log("Exception: " + e);
28
28
  }
29
29
  }
30
30
  ```