前提・実現したいこと
記事作成を外注しており、Googleドライブ上のスプレッドシートやドキュメントをライターさんに共有するのコピペ作業を自動化したいと思っています。
・スプレッドシートから記事名を取得する。
・それをファイル名にしたドキュメントを作成・
・そのドキュメントの権限を編集OKで設定しリンクを取得。
・別のドキュメントを作成する。> 引用テキスト
・そこにファイル名とリンクを本文に書き込む、
という処理を実施したいと思っています。
発生している問題・エラーメッセージ
Exception: 次のオブジェクトを取得できません。イテレータが末尾に到達しました。(行 46、ファイル「コード」)
該当のソースコード
function createSS() { //GAS実行のスプレッドシート var activeSS = SpreadsheetApp.getActiveSpreadsheet(); //GAS実行のスプレッドシートのシート var activeSheet = activeSS.getActiveSheet(); //シートのセルを指定(ファイル名用) var range = activeSheet.getRange("C2"); //シートのセルの値を取得(ファイル名用) var fileName = range.getValue(); //新規作成のGoogleドキュメントのid var id = DocumentApp.create(fileName).getId(); //新規作成のGoogleドキュメントのファイル var file = DriveApp.getFileById(id); //GAS実行のスプレッドシートのid var activeId = SpreadsheetApp.getActiveSpreadsheet().getId(); //GAS実行のスプレッドシートのフォルダ var activeFolder = DriveApp.getFileById(activeId).getParents(); //GAS実行のフォルダにGoogleドキュメントをコピー activeFolder.next().addFile(file); //ルートフォルダに作成されたGoogleドキュメントの削除 DriveApp.getRootFolder().removeFile(file); //新規作成したGoogleドキュメントの権限設定 var access = DriveApp.Access.ANYONE_WITH_LINK; var permission = DriveApp.Permission.EDIT; file.setSharing(access, permission); //新規作成したGoogleドキュメントの共有リンク取得 var accessUrl = file.getUrl(); var list = DocumentApp.create("writer用List"); var contents = fileName+"\n"+accessUrl; list.getBody().setText(contents); //GAS実行のフォルダにGoogleドキュメントをコピー activeFolder.next().addFile(list); //ルートフォルダに作成されたGoogleドキュメントの削除 DriveApp.getRootFolder().removeFile(list); }
補足情報(FW/ツールのバージョンなど)
行46は「activeFolder.next().addFile(list);」の箇所だと思われます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/24 07:06
2020/09/24 07:16
2020/09/24 14:43
2020/09/25 00:20
2020/09/25 00:56