🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

3492閲覧

GASのコピー先シートID取得ができない

show0

総合スコア13

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2019/11/07 16:36

コピー先シートIDを取得できない

現在、完全手探りで初めてGASをいじっています
かなり初歩的な質問かとは思いますが、調べても解決できなかったのでお助け願いたいです

発生している問題

新規作成したシートと指定フォルダにコピー
コピー元のシートを削除
(指定したフォルダに新規シートを作成するため)

この状態まではうまく行ったのですが、コピー先のシートのIDが取得できません
newfileの変数がコピーされたシートのIDだと思うのですが、GASに紐付いたシートを選択しています
どうすればよいでしょうか

該当のソースコード

var FOLDER_ID = "フォルダID"; function creatSS() { var idSS = SpreadsheetApp.create("新規SS名").getId(); var fileSS = DriveApp.getFileById(idSS); var folderTarget = DriveApp.getFolderById(FOLDER_ID); var newfile = folderTarget.addFile(fileSS).getId();//ここでコピー先のIDを取得している DriveApp.getRootFolder().removeFile(fileSS); var new2 = DriveApp.getFileById(newfile); }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問のコードではコピーしてないですね。コピーしたければこう。

javascript

1function creatSS() { 2 3 var idSS = SpreadsheetApp.create("新規SS名").getId(); 4 var fileSS = DriveApp.getFileById(idSS); 5 var folderTarget = DriveApp.getFolderById(FOLDER_ID); 6 var newfile = fileSS.makeCopy("なまえ", folderTarget).getId();//ここでコピー先のIDを取得している 7 DriveApp.getRootFolder().removeFile(fileSS); 8 9 var new2 = DriveApp.getFileById(newfile); 10}

しかし、

  1. 新規のファイルが欲しいだけで、かつもとのファイルを消すならコピーする意味がない
  2. new2は不要。getIdをいれなければ(var newFile = fileSS.makeCopy("なまえ", folderTarget);とすれば)、newFileにnew2と同じものがとれる。getFileByIdをするためだけにidを取るのは遠回り。

というところが気になります。このさきどう展開させていく方針なのか追記していただくとより適切な解決が得られるかもしれないし、得られないかもしれない。

投稿2019/11/07 23:44

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

show0

2019/11/08 01:15

ありがとうございます! 目的としては googleフォームから入力された内容を、指定フォーマットのシートに反映 そこから指定フォルダにpdf保存とメールで送信 というための、一番最初の段階です。 かなりの数を保存する予定のため、指定のフォルダに保存させる最初の段階です 勉強しながらなのでかなり遠回りをしているかもしれません。
papinianus

2019/11/09 07:25

このコピーと保存が、pdfを保存すること、しかもシートから生成したpdfを、という部分の予行演習だと今やっていることとは全く違うことをしているように思います。数が多いからなぜスプレッドシートをつくるのか理解不能でした。別の回答をお待ちください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問