久しぶりにGASネタです。
ドライブにある複数のプレゼンテーションをPowerPoint形式に変換する必要があり、手作業で行うのは面倒くさかったので、簡単なスクリプトを書くことにしました。
仕組みは下記記事と大体同じです。
ファイルメニュー → ダウンロード → 各形式 を実行したときのURLを叩けば良いだけですね。
折角なのでPowerPoint以外、PDFやPNG、JPGといった形式にも対応させることにしました。
function myFunction() {
const id = "(プレゼンテーションID)";
const file = convertPresentation(id, "pptx");
console.log(file.getName());
}
//プレゼンテーションを他形式に変換してドライブに保存、Fileを返す
//※JPEG, PNG, SVGは最初のスライドのみ
function convertPresentation(presentation_id, format) {
format = format.toLowerCase();
let ext = format;
switch (format) {
case "pptx":
case "odp":
case "pdf":
case "txt":
case "png":
case "svg":
break;
case "jpg":
case "jpeg":
format = "jpeg";
ext = "jpg";
break;
default:
format = "pptx";
ext = "pptx"
break;
}
const url = "https://docs.google.com/presentation/d/" + presentation_id + "/export/" + format;
const options = {
method: "get",
headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions: true
};
const res = UrlFetchApp.fetch(url, options);
if (res.getResponseCode() === 200) {
const prs = SlidesApp.openById(presentation_id);
return DriveApp.createFile(res.getBlob()).setName(prs.getName() + "." + ext);
}
}
上記コードを実行すると、指定した形式の同名のファイルがドライブ上に作成されます。
形式の判定処理でコード量が多いように見えますが、至ってシンプルに実装できました。

![[Google Apps Script]スプレッドシートをExcelファイル(xlsx)に変換する](https://www.ka-net.org/blog/wp-content/uploads/eyecatch-Google-120x120.png)
















この記事へのコメントはありません。