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

質問編集履歴

3

コードの更新

2019/05/20 11:38

投稿

ishikoro.1234
ishikoro.1234

スコア14

title CHANGED
File without changes
body CHANGED
@@ -27,22 +27,37 @@
27
27
  }
28
28
  ```
29
29
 
30
- ###シー取得するコードも作ってみたがうまく起動しなかったです...
30
+ ###シー名取得コード
31
31
  ```
32
- function getSSName(){
32
+ function getname(sheet_no) {
33
-
34
- var ss = SpreadsheetApp.getActive().getSheetsById;
33
+ var name= SpreadsheetApp.getActive().getSheets()[sheet_no - 1].getName();
35
- var ss_names = new Array();
34
+ return name;
35
+ }
36
+ ```
36
37
 
38
+ ###現在のコード
39
+ ```
37
- if (ss.length >= 1) {
40
+ function q189933() {
38
- for(var i = 0;i < ss.length; i++)
41
+ const destination = SpreadsheetApp.openById('コピー先ID');
42
+ SpreadsheetApp.openById('元のファイルID').getSheets().forEach(
39
- {
43
+ function(e) {
40
- ss_names.push(ss.getName());
44
+ e.copyTo(destination);
41
-
42
45
  }
46
+ );
43
- }
47
+ }
48
+ function q189933_() {
49
+ SpreadsheetApp.openById('コピー先ID').insertSheet('Sheet List', 0);
44
50
 
51
+ var sheetlist = SpreadsheetApp.openById('コピー先ID');
52
+ var movesheet = sheetlist.getSheetByName('Sheet List');
53
+ sheetlist.setActiveSheet(movesheet);
45
- return ss_names;
54
+ sheetlist.moveActiveSheet(1);
46
-
55
+
47
56
  }
57
+ function q189933__() {
58
+ const sheet = SpreadsheetApp.openById('コピー先ID').getSheetByName('Sheet List');
59
+ sheet.clear();
60
+ const dat = SpreadsheetApp.openById('コピー先ID').getSheets().map(function(e){return [e.getSheetName(), e.getSheetId()];}).filter(function(e){return e[0] !== 'Sheet List';});
61
+ sheet.getRange(1, 1, dat.length, 2).setValues(dat);
62
+ }
48
63
  ```

2

書式及び説明の改善

2019/05/20 11:38

投稿

ishikoro.1234
ishikoro.1234

スコア14

title CHANGED
File without changes
body CHANGED
@@ -1,12 +1,13 @@
1
1
  ### 前提・実現したいこと
2
-
3
- Google AppScriptで指定スプレットシートの全シーをアクテイブシートにコピーしたいですが最初はネットで調べて一枚コピー成功しました。
2
+ Google AppScriptで別のフォルダにあるスプレットシートを一つスプレットシートにまとめたいで、スプレットシートのID当該スプレットシートにある全シートを指定したいコピー先にコピーするコードを書きいです
3
+ もし可能であれば、シートをコピーしたあとにシート名にある(コピー)を削除し、スプレットシートの頭に新しいシートを作成し、全てシートの名前の一覧を作成したいです。
4
4
  しかし、全シートをコピーしたかったので、自分なりにコードを変えてみましたが、今度はコードを起動しても何も起こらなかったです。
5
+ 説明がわかりにくくて申し訳ございません。
5
6
  まだまだ初心者なので、ご教授頂ければ幸いでございます。
6
7
 
7
8
 
8
9
  ### 該当のソースコード
9
-
10
+ ```
10
11
  function function_name() {
11
12
 
12
13
  var source = SpreadsheetApp.openById('元のファイルID');
@@ -22,24 +23,12 @@
22
23
  var destination = SpreadsheetApp.openById('コピー先ID');
23
24
 
24
25
  sheet[i].copyTo(destination);
25
-
26
26
  }
27
-
28
-
29
27
  }
30
- ###実現したいこと・補足
28
+ ```
31
- もし可能であれば、最初に新しいシート(シート一覧)を作成し、シートをコピーする際に、シート一覧のA列にシート名、B列にシートIDを自動で記入する仕組みにしたいです。
32
29
 
33
- ###シードIDを取得するコードを調べたが理解できなかったです...
34
- function getAllFolderID(){
35
- var all_folders = DriveApp.getFolders();
36
-
37
- while (all_folders.hasNext()){
38
- var folder = all_folders.next();
39
- return('Folder名:'+folder.getName() + 'FolderID:' + folder.getId());
40
- }
41
- }
42
30
  ###シード名を取得するコードも作ってみたがうまく起動しなかったです...
31
+ ```
43
32
  function getSSName(){
44
33
 
45
34
  var ss = SpreadsheetApp.getActive().getSheetsById;
@@ -55,4 +44,5 @@
55
44
 
56
45
  return ss_names;
57
46
 
58
- }
47
+ }
48
+ ```

1

実現したいこと及び参考コードの更新

2019/05/20 02:02

投稿

ishikoro.1234
ishikoro.1234

スコア14

title CHANGED
File without changes
body CHANGED
@@ -26,4 +26,33 @@
26
26
  }
27
27
 
28
28
 
29
+ }
30
+ ###実現したいこと・補足
31
+ もし可能であれば、最初に新しいシート(シート一覧)を作成し、シートをコピーする際に、シート一覧のA列にシート名、B列にシートIDを自動で記入する仕組みにしたいです。
32
+
33
+ ###シードIDを取得するコードを調べたが理解できなかったです...
34
+ function getAllFolderID(){
35
+ var all_folders = DriveApp.getFolders();
36
+
37
+ while (all_folders.hasNext()){
38
+ var folder = all_folders.next();
39
+ return('Folder名:'+folder.getName() + 'FolderID:' + folder.getId());
40
+ }
41
+ }
42
+ ###シード名を取得するコードも作ってみたがうまく起動しなかったです...
43
+ function getSSName(){
44
+
45
+ var ss = SpreadsheetApp.getActive().getSheetsById;
46
+ var ss_names = new Array();
47
+
48
+ if (ss.length >= 1) {
49
+ for(var i = 0;i < ss.length; i++)
50
+ {
51
+ ss_names.push(ss.getName());
52
+
53
+ }
54
+ }
55
+
56
+ return ss_names;
57
+
29
58
  }