質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.47%
Google スライド

Google スライドは、Google社が提供している文書作成ツール。Googleアカウントがあれば利用が可能です。プレゼンテーション用テンプレートフォーマットやフォントなどが多く用意されています。

Google Apps Script

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Q&A

解決済

2回答

132閲覧

プレゼンテーションファイルのコピーファイル生成と、生成したファイルのURLをスプレッドに記載

ri-g-yo

総合スコア3

Google スライド

Google スライドは、Google社が提供している文書作成ツール。Googleアカウントがあれば利用が可能です。プレゼンテーション用テンプレートフォーマットやフォントなどが多く用意されています。

Google Apps Script

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

0グッド

1クリップ

投稿2023/11/28 03:23

実現したいこと

①ドライブ内にある、プレゼンテーションコピーの生成をスプレッド一覧にて空白値となるまで繰り返したい。
②コピー生成されたプレゼンテーションのURLをスプレッド一覧に記載させたい。

前提

①単発でのコピー生成は成功したのですが、繰り返し設定が上手くいかず下記のエラーとなってしまいます。
②function copyPresentation_(sourceFileId) { に直接  sheet.getRange(”指定セル”).setValue(newFileId); などを設定しても、エラーで弾かれてます。
別functionを作成が必要かと思ったのですが、上手くできませんでした。

初心者です。
諸々ご教授頂けると助かります。

発生している問題・エラーメッセージ

Exception: Unexpected error while getting the method or property getFileById on object DriveApp.

該当のソースコード

//ドライブ内ファイルをコピー
function copyTemplate(){

const sheetName = "シート名";
// スプレッドシートを取得する
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// シートを取得する
const sheet = spreadsheet.getSheetByName(sheetName);
const lastRow = sheet.getLastRow();//最終行を取得

for (let i=15; i<=lastRow; i++) {//15行目から最終行までループさせる

 const url = sheet.getRange(i,16).getValue();//Q15セル 対象スライドのURL記載セル
if (url === '') break; // 空白セルならループを抜ける

var sourceFileId = url;//コピー元ファイルのID
copyPresentation_(sourceFileId);
}

}

function copyPresentation_(sourceFileId) {

var sourceFile = DriveApp.getFileById(sourceFileId);
var newFile = sourceFile.makeCopy();
var newFileId = newFile.getId();
var presentation = SlidesApp.openById(newFileId);
return presentation;

}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答2

0

自己解決

コピーファイルを別フォルダに生成させ、そのフォルダ内のファイル情報を全てスプレッドに書き出す。という方法で回避しました。

投稿2023/12/04 09:25

ri-g-yo

総合スコア3

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

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

0

const url = sheet.getRange(i,16).getValue();//Q15セル 対象スライドのURL記載セル
→読み取り部分が誤ってました。
.getRange(i,17)
でコピーファイル生成は成功しました。

投稿2023/12/04 07:47

ri-g-yo

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問